go-基础语法
2022-02-21 本文已影响0人
嗯o哼
一、定义变量
1.先定义再赋值
var name string // 定义一个字符串变量 名字为name
// 赋值
name = "jack"
2.定义的同时并赋值
var name string = "jack"
3定义多个变量
var name, address string = "jack","北京" // 如果指定数据类型,此时赋值的变量是同一种数据类型
var ( // 通过() 定义多个不同数据类型的变量
name string = "jack"
age int = 18
)
二、自动推导
如果定义一个变量,并直接赋值,不写变量的类型,编译器会根据数据进行自动推导出该变量的数据类型
var name = "jack" // 此时的变量name 自动推导出string 类型
var name, address = "jack","北京" // 省略变量类型自动推导出变量的数据类型
var (
name = "jack"
age = 12
)
三、简短写法
简短声明,只能在函数内部使用,声明的同时赋值
func main(){
name := "jack"
name, address := "jack", "北京"
fmt.Println(name, address)
}
四、常量 const
变量是可以修改数据值的,变量必须被使用,如果未被使用会报错
常量一旦赋值,是不能被修改的, 常量可以没有被使用
// 定义常量就是将var 换成const,常量定义的时候,必须赋值
const name = "jack"
// 多个常量同时赋值
const a1,a2,a3 = 1,2,3
const ( // 使用这种方式定义的常量,未被赋值的会默认为同上一个定义的常量数值一样
b1 = 1
b2 = 2
b3
)// 打印的结果为 1 2 2
五、枚举
go语法中,没有枚举的类型,但是我们可以通过const + iota模拟枚举类型
const (
E1 = iota //默认为0
E2 // 自动+1
E3
)
// E1=0,E2 = 1,E3 = 2
六、作用域
定义标识符可以使用的范围,使用{}进行定义作用域的范围 {}内部可以嵌套多个{}
使用原则
子语句块可以使用父语句块中的变量,常量,但是父语句块无法使用子语句块中的变量,常量
var b = 1
{
b = 2 // 子语句块可以修改父语句块中的变量
fmt.Println(b)
// 子语句块可以重新定义一个父语句块中的同名变量
// 变量只能在该作用域内使用,此时定义的变量,也必须要在该定义域内使用,否则报错
b := 3
fmt.Println(b)
}
fmt.Println(b)