温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

go语言中变量声明与赋值的示例分析

发布时间:2021-11-20 16:02:00 阅读:126 作者:小新 栏目:开发技术

小编给大家分享一下go语言中变量声明与赋值的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

变量

变量是内存当中一段空间的抽象描述。变量的类型明确了空间的大小以及空间如何解析。

Go中的变量类型

1
bool byte complex64 complex128 error float32 float64 int int8 int16 int32 int64 rune string uint uint8 uint16 uint32 uint64 uintptr

变量的声明与赋值

方式1

123456789
package mainimport "fmt"func main() {  var x string  x = "Hello World"  fmt.Println(x)}

方式2

注意,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 使用

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)}

变态iota

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语言中变量声明与赋值的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI