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)
上一篇 下一篇

猜你喜欢

热点阅读