小编给大家分享一下go语言中变量声明与赋值的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
创新互联公司于2013年创立,是专业互联网技术服务公司,拥有项目成都网站制作、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元蓬安做网站,已为上家服务,为蓬安各地企业和个人服务,联系电话:028-86922220
变量
变量是内存当中一段空间的抽象描述。变量的类型明确了空间的大小以及空间如何解析。
Go中的变量类型
1
| bool byte complex64 complex128 error float32 float64 int int8 int16 int32 int64 rune string uint uint8 uint16 uint32 uint64 uintptr
|
变量的声明与赋值
方式1
1 2 3 4 5 6 7 8 9
| package main
import "fmt"
func main() { var x string x = "Hello World" fmt.Println(x) }
|
方式2
注意,x := “Hello World” 等价于 var x = “Hello World”
自动推断类型,并且必须在函数体内部
1 2 3 4 5 6 7 8
| package main
import "fmt"
func main() { x := 1 fmt.Println(x) }
|
多样的赋值
1 2 3 4 5 6 7 8
| var i int var U, V, W float64 var k = 0 var x, y float32 = -1, -2 var ( i int u, v, s = 2.0, 3.0, "bar" )
|
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| package main
import "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) }
|
零值问题
变量初始化不赋值的情况,默认为空。
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| package main import "fmt" func main() { var a int var b string var c float64 var 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}
有效:
1 2 3 4 5 6 7 8 9 10 11
| package main
const ( m = 1 n = 2 ) func main(){
const k = 8 }
|
iota 使用
iota从0开始循环
1 2 3 4 5 6 7 8 9 10 11 12 13
| const ( a = iota b = iota c = iota d = iota ) 等价于: const ( a = iota b c d )
|
使用案例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| package main
import "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) }
|
变态iota
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| package main
import "fmt" const ( i=1< j=3< k l )
func main() { fmt.Println("i=",i) fmt.Println("j=",j) fmt.Println("k=",k) fmt.Println("l=",l) }
|
结果:
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语言中变量声明与赋值的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联网站制作公司行业资讯频道!
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
本文标题:go语言中变量声明与赋值的示例分析-创新互联
标题来源:
http://cdkjz.cn/article/hcsjd.html