小编给大家分享一下go语言中变量声明与赋值的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
变量是内存当中一段空间的抽象描述。变量的类型明确了空间的大小以及空间如何解析。
1 | bool byte complex64 complex128 error float32 float64 int int8 int16 int32 int64 rune string uint uint8 uint16 uint32 uint64 uintptr |
123456789 | package mainimport "fmt"func main() { var x string x = "Hello World" fmt.Println(x)} |
注意,x := “Hello World” 等价于 var x = “Hello World”
自动推断类型,并且必须在函数体内部
12345678 | package mainimport "fmt"func main() { x := 1 fmt.Println(x)} |
12345678 | var i intvar U, V, W float64var k = 0var x, y float32 = -1, -2var ( i int u, v, s = 2.0, 3.0, "bar") |
例子:
123456789101112131415161718192021 | package mainimport "fmt"func main(){var a,b string= "jonson","jackson" c,d := true,false e,f,g := "jonson",true,123 fmt.Println("a:",a) fmt.Println("b:",b) fmt.Println("c:",c) fmt.Println("d:",d) fmt.Println("e:",e) fmt.Println("f:",f) fmt.Println("g:",g)} |
变量初始化不赋值的情况,默认为空。
例子:
123456789101112131415 | package mainimport "fmt"func main() {var a intvar b stringvar c float64var d bool fmt.Printf("%v \n", a) fmt.Printf("%v \n", b) fmt.Printf("%v \n", c) fmt.Printf("%v \n", d) fmt.Println()} |
常量一旦声明不能改变,并且常量必须赋予初始值。此代码无效func main() {const x int}
有效:
1234567891011 | package mainconst ( m = 1 n = 2)func main(){ const k = 8} |
iota从0开始循环
12345678910111213 | const ( a = iota b = iota c = iota d = iota)等价于:const ( a = iota b c d) |
使用案例:
123456789101112131415161718 | package mainimport "fmt"func main() {const ( a = iota //0 b //1 c //2 d = "ha" //独立值,iota += 1 e //"ha" iota += 1 f = 100 //iota +=1 g //100 iota +=1 h = iota //7,恢复计数 i //8 ) fmt.Println(a,b,c,d,e,f,g,h,i)} |
12345678910111213141516 | package mainimport "fmt"const ( i=1<<iota j=3<<iota k l)func main() { fmt.Println("i=",i) fmt.Println("j=",j) fmt.Println("k=",k) fmt.Println("l=",l)} |
结果:
1234 | i= 1j= 6k= 12l= 24 |
iota表示从0开始自动加1,所以 i=1<<0, j=3<<1(<<表示左移的意思),即:i=1,j=6,这没问题,关键在k和l,从输出结果看 k=3<<2,l=3<<3。
简单表述:
• i=1:左移 0 位,不变仍为 1;
• j=3:左移 1 位,变为二进制 110, 即 6;
• k=3:左移 2 位,变为二进制 1100, 即 12;
• l=3:左移 3 位,变为二进制 11000,即 24。
以上是“go语言中变量声明与赋值的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。