变量的定义
在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名、常量名、函数名等等。 Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头。 举几个例子:abc, _, _123, a123。
go中的关键字
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
go中的保留字
Constants: true false iota nil
Types: int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
float32 float64 complex128 complex64
bool byte rune string error
Functions: make len cap new append copy close delete
complex real imag
panic recover
变量的声明
//标准声明
var 变量名 变量类型
var 变量名 变量类型
//批量声明
var (
变量名 变量类型
变量名 变量类型
变量名 变量类型
)
//这种没有指定值的都会有默认值,整形和浮点型的默认值为0,字符串'',布尔值为false,切片,函数,指针变量为nil
//声明变量且指定默认值
var age int = 18 //省略类型的话编译器会根据值来推导变量的类型
//简洁定义
n := 10
m := 20
//全局声明为全局变量函数内声明为局部变量
//忽略接受不需要的变量_
func foo() (int, string) {
return 10, "Q1mi"
}
func main() {
x, _ := foo()
_, y := foo()
fmt.Println("x=", x)
fmt.Println("y=", y)
}
常量
//常量指的就是恒定不变的量
将变量的关键字换成const就是定义常量
eg: const pi = 3.14
//批量定义
const (
pi = 3.1415
e = 2.7182
)
//省略定义不写值默认与上一个常量值相同
eg:
const (
n1 = 100
n2
n3
)
//常量计数器iota会将值依次递增
const (
n1 = iota //0
n2 //1
n3 //2
n4 //3
)
//iota中间声明插队
const (
n1 = iota //0
n2 = 100 //100
n3 = iota //2
n4 //3
)
const n5 = iota //0
//多个iota定义在一行
const (
a, b = iota + 1, iota + 2 //1,2
c, d //2,3
e, f //3,4
)
基本数据类型
1.有符号整形(int,int8,int16,int32,int64),无符号整形(uint8),特殊整形就是不带数据跟多少位操作系统有关,uintptr无符号整形,用于存放一个指针
2.浮点型(float32,float64)
3.0b表示二进制,0o表示八进制,0x表示十六进制
4.布尔型
5.字符串
6.数组
7.切片
8.结构体
9.函数
10.通道
三个打印的区别
func main() {
fmt.Println("hello world", x) //有换行和不在
fmt.Println(x)
fmt.Printf("%T\n", x) //格式化输出
fmt.Printf("%T\n", a)
fmt.Print(a, x) //普通打印且不会换行黏在一起
}
注意
//一个包下得到函数名和变量名要唯一
//函数形参要声明类型,以及返回值也要声明类型