go是**静态类型**语言,不能在运行期改变变量类型。
var x int // 自动初始化为0 var f float32 = 1.6 var s = "abc" func main(){ x := 123 }
var x, y, z int var s, n = "abc", 123 data, i := [3]int{0, 1, 2}, 0 i, data[i] = 2, 100 //(i=0) -> (i=2), (data[0]=100)
const ( s = "abc" x // x = "abc" 常量组中,如不提供类型和初始值,那么与上一常量相同 b = len(a) c = unsafe.sizeof(b) // 可以使用len, cap, unsafe.sizeof等编译器可确定结果的函数返回值 )
const ( sunday = iota // 0 monday // 1 .. ) const ( _ = iota // iota =0 kb int64 = 1 << (10 * iota) // iota = 1 mb // 与kb表达式相同,但iota = 2 gb )
类型 | 默认值 | 长度 |
---|---|---|
bool | false | 1 |
byte | 0 | 1 |
rune | 0 | 4 |
int/uint | 0 | - |
float* | 0.0 | - |
string | "" | - |
slice / map / channel | nil | - |
interface/function | nil | - |
array / stuct | - | - |
var b byte = 100 var n int = (int)(b) // 显示转换,建议(type) a := 100 if a { // 不能使用其他类型当bool使用 println("true") }
与c类似,略。
var a [4]int = [4]int{1,2} //未初始化的元素将被赋为零值 var b = [...]string{"hello"} //长度为1 c := [...]int{99:-1} //定义了100个元素,最后一个初始化为-1
说明
[注意事项](https://studygolang.com/articles/12958)
x := []int{1, 2, 3} i := 2 switch i { case x[1]: println("a") // 自动终止 case .. } switch { // 可省略条件 case x > 0 : ... } switch i := 2; { // 带初始化语句 ... }
如对本文有疑问, 点击进行留言回复!!
小团队大开发:iogo微服务集群框架(golang/grpc/http/protobuf/etcd/freetoo/5G物联网/服务发现/负载均衡/一致性哈希/码客/广西南宁卢益贵)
[Golang] packetbeat 二次开发-移植(二)
网友评论