2.go基础语法
var关键字声明变量
-
使用
var
关键字
这是最基本的变量声明方式
var x = 100
var y string = "hello"
var z bool // 默认零值 为 false
var w //错误 go是强类型语言声明必须确定类型 w不能推断出来类型,并且没有给定具体类型。
var t int = "hello" //错误,推到类型和声明类型不匹配
var t int // 错误,t 已经被定义,可以直接使用 不能在定义
var v = nil // nil没有类型,不能用于类型推断
-
使用
var
关键字同时声明多个变量
var (
a int = 10
b string = "world"
c bool = true
)
-
类型推断
var a = 100
此变量没有声明类型。由右边的值进行推断
go语言不允许只声明一个变量。不对该变量定义类型并且不赋值,会提示期待一个类型的错误
-
使用短变量声明(
:=
)
当你在函数内部声明局部变量时(此声明方式不能再全局使用),可以使用 :=
操作符,这种方式会自动推断变量的类型。自动类型推断不能写var 声明,和自定义变量
x := 10 // 推断 x 为 int 类型
y := "hello" // 推断 y 为 string 类型
-
一行声明多个变量
var x,y = 10,"hello"
X, Y := 10 ,"hello"
const
关键字声明常量
-
常量在程序运行时不会被修改。
-
数组类型不能声明为常量
-
在有iota的常量组中,iota在常量声明的第一行以0开始,每换一行iota都会自增1
const PI float64 = 3.1415926
const (
StatusOK = 200
StatusError = 500
)
const (
A = 10 //常量组中的常量值是不可修改的 此行iota=0
B //如果常量组中的常量没有赋值,那么它的值继承上一个赋值表达式 此行iota=1
C = 1 << iota //在有iota的常量组中,iota在常量声明的第一行以0开始,每换一行iota都会自增1.此行iota=2
D //此行 继承上一行表达式为1 << iota 换行后iota自增1 此行iota=3
)
// A=10 B=10 C=4 D=8
-
匿名变