亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

go語言中變量聲明與賦值的示例分析

發布時間:2021-11-20 16:02:00 來源:億速云 閱讀:112 作者:小新 欄目:開發技術

小編給大家分享一下go語言中變量聲明與賦值的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

變量

變量是內存當中一段空間的抽象描述。變量的類型明確了空間的大小以及空間如何解析。

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<<iota
   j=3<<iota
   k
   l
)

func main() {
    fmt.Println("i=",i)
    fmt.Println("j=",j)
    fmt.Println("k=",k)
    fmt.Println("l=",l)
}

結果:

1
2
3
4
i= 1
j= 6
k= 12
l= 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

凌海市| 长子县| 湖口县| 竹山县| 自治县| 赫章县| 如东县| 民勤县| 东阳市| 波密县| 平度市| 渭南市| 玛沁县| 正阳县| 浪卡子县| 齐齐哈尔市| 贺州市| 黄山市| 新宁县| 白朗县| 合水县| 甘谷县| 库车县| 册亨县| 宜章县| 宁德市| 开原市| 奎屯市| 蓬溪县| 桂林市| 柘荣县| 韩城市| 连城县| 宜兴市| 卓尼县| 当涂县| 竹北市| 勃利县| 道孚县| 静乐县| 临泉县|