GO语言02 注释 程序如何运行 变量 数据类型 常量 函数

注释

程序如何运行

方式1:窗口中
1.编译:go build 文件名
2.执行:文件名

方式2:窗口中
编译并执行:go run 文件名

方式3:直接右键执行

变量

1.什么是变量

变量指定了某存储单元(Memory Location)的名称,该存储单元会存储特定类型的值。在 Go 中,有多种语法用于声明变量。

2.声明变量

方式1完整写法:
var关键字 变量名  变量类型 = 值
var a int=10   //定义了一个int类型的a ,把10赋值给他

方式2类型推导:
var关键字 变量名  = 值
var a =10

方式3简略声明:
变量名:  = 值
a:=10

方式4:同时定义多个变量
//var a =10
//var b=100
//var a,b int
//var a,b int=10,20
//var a,b=10,20
//var a,b=10,"lqz"
//a,b:=10,20
//a,b:=10,"lqz"
//fmt.Println(a)
//fmt.Println(b)
var (
name = "naveen"
age = 29
height int
)
拓展1:定义不赋初值  :int 类型默认值是0  string 类型默认值是空字符串
var a int
//a=10
var b string
//b="lqz"

声明注意点

1.变量不能用var重复定义
var a int=10
var a =10 // 报错不能重复定义

2.类型是固定的,可以更改变量的值但值的类型要一致
var a =10
a=100 // 可以更改
b:="lqz" // 报错值的类型不一致

数据类型

https://www.cnblogs.com/xiaoyuanqujing/articles/11676016.html

1.数字类型

1.int类型:表示整数,int8   int16  int32  int64。
计算机最小计量单位:bit位  int8 是 8个比特位=1个字节,表示的范围是:正负2的7次方减1

2.在32位机器上int 就是int32 ,在64位机器上int就是int64
    uint类型:表示正整数 uint8 uint16...
    float类型:表示小数只有float32和float64
    complex64类型:复数
    byte: uint8的别名
    rune:int32的别名
    //var a int=-10
    //fmt.Println(a)
    //var a int =100000
    //fmt.Println(a)
    //var a uint8=100
    //fmt.Println(a)
    //var a float32=2.33
    //fmt.Println(a)

2.字符串

1.必须用双引号(单行),反引号是python中的三引号(多行)
2.示例
var a string="lqz"
var c string=`阿斯蒂芬a
手动阀afd阿斯蒂芬
安抚
asfd阿萨德f`

3.布尔类型

1.bool类型 值为true或false,0值是false
2.示例:
var b bool =true
//var b =true
//b:=true
//var b bool //默认为false

4.查看值的类型

查看类型: "%T"
b:='a'
fmt.Printf("%T",b) 

常量

1.什么是常量

值的是恒定不变的量

2.常量的定义

https://www.cnblogs.com/xiaoyuanqujing/articles/11676022.html

1.定义常量
const 名 =2.常量赋值不能更改

3.示例:
package main
func main() {  
    const a = 55 // 允许
    a = 89       // 不允许重新赋值
}

函数

1.什么是函数

函数是一块执行特定任务的代码。一个函数是在输入源基础上,通过执行一系列的算法,生成预期的输出。

2.函数定义语法

func关键字 函数名(参数1 类型,参数2 类型) (返回值类型1,返回值类型2){函数体}

示例:

1.无参数,无返回值
func test()  {
    fmt.Println("xxx")

}

2.有两个int类型的参数
func test(a int,b int)  {}
func test(a ,b int)  {}
func test(a ,b int,c string)  {
    fmt.Println(a+b)
}

3.有一个数字类型返回值,一定要指定返回值类型
func test(a,b int) int {
    return a+b
}
func test(a,b int) string {
    return "lqz"
}

返回多个值
func test(a,b int) (int,string)  {
    return a+b,"成功"
}

4.命名返回值
func test(a,b int) (c int, d string)  {
    c=10
    d="成功"
    return
}

5.在go中没有位置参数和关键字参数,都是位置参数,也没有默认参数
func test(a,b int) int {
    return a+b
}

6.不定长参数
func test(a ...interface{})  {
    fmt.Println(a)

}

3.函数是一等民

1.go语言中,函数是一等公民,可以把函数赋值给一个变量,函数就是一等公民

2.函数也是有类型的:除了函数的名字和函数体,把参数和返回值原封不动的拿过来就是一个函数的类型

3.示例:
func test(a int) (int,int) {
    fmt.Println("xxx")
    return 1,2

}

func main() {
    var a func(a int)(int,int)
    //var a =test
    a=test
    a(1)
}

4.闭包函数和内层函数

1.简介和注意点

1.闭包函数:定义在函数内部,对外部作用域有引用。

2.内层函数:定义在函数内部的函数。

3.go中函数内部定义的函数是不能有名的,需要定义匿名函数:没有名字

2.示例

1.内层函数示例:
func test(a int)  {
    func() {
        fmt.Println("我是内层函数")
    }() // 加括号匿名函数会自调用,也可不加括号把匿名函数返回出去,在调用
}

2.闭包函数
func test(a int) (func()) {
    //var c int =100
    b:=func() {
        fmt.Println(a) // 引用了外部函数作用域,所以是闭包函数
        fmt.Println("我是闭包函数")
    }
    return b  // 返回匿名函数,可在外部接收使用
}

3.定义一个函数,传入函数,返回函数
func test(a func()) func()  {
    b:= func() {
        fmt.Println("我先执行")
        a()
        fmt.Println("函数执行完了")
    }
    return b
}
func test2()  {
    fmt.Println("xxxx")

}

5.给类型起别名

1.语法:
type 别名  类型
2.示例:
type MyFunc  func(a int,b int) func()

type MyInt int

 

posted @ 2019-12-09 19:45  心慌得初夏  阅读(251)  评论(0编辑  收藏  举报
levels of contents