亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Golang > 正文

Golang中的變量學習小結

2020-04-01 18:52:38
字體:
來源:轉載
供稿:網友

Golang里面變量總的來說分四大類型

1. bool,string

bool:指布爾類型,也就是true, false
string: 字符串類型

2. (u)int, (u)int8, (u)int16, (u)int32, (u)int64, uintptr

int 和 uint, 其中有u和沒有u指的是unsigned指的是有無符號,也就是有無正負號,int類型會根據你操作系統的字數來判斷是32位還是64位,如果你的操作系統是64位的,那么在定義int的時候就是64位,也就是你定義int的時候編譯器會根據你的操作系統來給這個變量自動分配多大的空間大小。
(u)int8, (u)int16, (u)int32, (u)int64這些后面的8, 16, 32, 64這些是指你定義的變量的大小,8 就是8位,這里的8位指的是二進制中的8位,同理16, 32, 64也是一樣的道理,位數越多,變量能便是的范圍越大。
uintptr是指針類型,Go語言也是具有指針這一特性的,但是并沒有像c語言使用那么的復雜。后會深究這個類型。

3. byte, rune

byte類型你可以看作是uint8的一個別名,byte和uint8表示的范圍是一樣的,也可以叫做字節類型,byte,最大能表示的范圍也就是一個字節的空間大小。
rune是一個新的數據類型,因為你在其他的語言中并沒有見過這種類型,相對來說也比較陌生,但是我舉個例子你就能完全明白了,在c語言中,有char這個類型,是用來便是一個ASCII字符的,但是是隨著編程知識的普及,很多國家的人們都在學習編程,編寫程序,但是語言就成為來一大障礙,僅僅用ASCII編碼是遠遠不能滿足人們的需求的,故Go語言就是用了Unicode編碼,rune也就相當于是在Unicode編碼下的字符類型。
rune的長度是32位的,我們都知道unicode是2字節的,但是互聯網中很多時候都是使用的UTF-8編碼,所以我們rune類型采用了4字節的存儲空間,如果后期Go會升級成UTF-8編碼提供了可能。
在c語言中,我們都知道char是可以和整型混用的,舉個例子:printf("%c",97);輸出的是小寫字母a。那么rune類型也是可以類似的使用的。

4. float32, float64, complex64, complex128

float32和float64都是浮點數類型,float32大約可以提供小數點后6位的精度,作為對比,float64可以提供小數點后15位的精度。如果想探究浮點數在計算機中的存儲形式可以百度一下。
complex64和complex128就是用來表示我們數學中的復數,復數實部和虛部,complex64的實部和虛部都是32位float,complex128的實部和虛部都是64位float。

Golang的變量定義方式

package mainimport "fmt"var bb uint8 = 12var xx = 12var (  cc = 12  q, w = 12, 12  b string = "false")func variableZoreValue() {  var a int  var b string  fmt.Println(a, b)}func variableInitialValue() {  var a int = 1  n, x := 1, 2  var s string = "abc"  fmt.Println(a, s)  fmt.Println(n, x)}func main() {  variableZoreValue()  variableInitialValue()  fmt.Println(bb, xx, cc, q, w, b)}

我們定義的變量可以在函數內也可以在函數外,在函數外部定義的變量并不是全局變量,應該是叫做包內變量,因為是在一個包下面。

定義一個變量:

var a int這種定義方式指明了變量的類型,沒有初始化,但是我們的編譯器會幫你初始化為0
var a int = 16這種方式是相比上一種方式多了初始化。
var a = 12這種方式沒有指定類型,但是初始化了一個值12,這種方式編譯器會自動的識別是那種類型,就像python里面一樣,不需要指定類型。
a := 12這種方式和上一種類似,但是更加方便,不用寫前面的var了。

定義多個變量

var bb,cc uint8 = 12, 13這種方式可以定義多個相同類型的變量
var z, str = 14, "string"這種方式比上一種方式更好好用,因為這樣可以同時定義多個不同類型的數據了。
n, x := 1, 2這種方式比上一種方式更加方便,不僅可以同時定義多個不同類型的變量同時不用寫var關鍵字了。

complex 復數類型

package mainimport (  "fmt"  "math/cmplx"  "math")func complexVariable() {  c := 3 + 4i  fmt.Println("|3 + 4i|=",cmplx.Abs(c))  fmt.Println(cmplx.Pow(math.E, 1i * math.Pi) + 1)  fmt.Println(cmplx.Exp(1i * math.Pi) + 1)  fmt.Printf("%0.3f", cmplx.Exp(1i * math.Pi) + 1)}func main() {  complexVariable()}

c := 3 + 4i,我們在定義復數的時候應該是這種形式而不是:c := 3 + 4*i,如果是這樣的形式,則編譯器會把這個i當作是變量處理,而不是復數標志
cmplx.Abs(c),取復數的絕對值
cmplx.Pow(math.E, 1i * math.Pi) + 1,計算e^(iπ)+1,e是數學中的自然數。
cmplx.Exp(1i * math.Pi) + 1,另外一種計算方式
fmt.Printf("%0.3f", cmplx.Exp(1i * math.Pi) + 1)格式化輸出復數。

常量的定義

package mainimport (  "fmt"  "math")c consts() {  var filename = "1.txt"  const a, b = 3, 4  var c int = 0  c = int(math.Sqrt((a*a + b*b)))  fmt.Println(filename, c)}func main() {  consts()}

Go語言中的常量是和c語言中的宏常量是一樣的,本著替換的原則,所以如果在定義常量的時候編譯器不用指定類型,所以在c = int(math.Sqrt((a*a + b*b)))中就不用把(a*a + b*b)強轉為float64。
在定義變量的規則中對常量也是適用的,我就不多講了,自己去實踐下就知道了。

定義枚舉類型

在Go語言中并沒有針對枚舉類型的關鍵字的,那Go語言是怎么定義枚舉類型的呢?

package mainimport "fmt"func enums() {  const(    c = 0    cpp = 1    java = 2    python = 3  )  fmt.Println(c, cpp, java, python)}func main() {  enums()}

這樣我們便定義了一個枚舉同時還可以使用iota關鍵字,表示這個枚舉類型是遞增的

package mainimport "fmt"func enums() {  const(    c = iota    cpp    java    python  )  fmt.Println(c, cpp, java, python)}func main() {  enums()}

更高級的定義方法:

// 定義b kb mb gb tb pbconst(  b = 1 << (10 * iota)  kb  mb  gb  tb  pb)

iot想得到與從0開始的給自增值,你要我們寫寫出表達式再復雜的枚舉類型都可以使用這樣的方式來定義常量。

總結

在Go語言的變量常量定義中,變量的類型標識是寫的變量名的后邊,編譯器可以自動推測你需要定義變量的類型的,前提是你要初始化變量,沒有char只有rune,原生態的支持復數這種類型。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩美女在线看| 日韩av电影手机在线观看| 一本久久综合亚洲鲁鲁| 久久久www成人免费精品张筱雨| 日韩中文第一页| 精品久久久999| 国产深夜精品福利| 97婷婷大伊香蕉精品视频| 亚洲欧美日韩视频一区| 中文字幕精品在线视频| 欧美怡红院视频一区二区三区| 亚洲字幕在线观看| 91美女片黄在线观| 精品国产依人香蕉在线精品| 成人在线小视频| 黑人狂躁日本妞一区二区三区| 成人黄色大片在线免费观看| 久久久久久亚洲精品不卡| 91网站免费观看| 国产小视频91| 国产精品午夜视频| 亚洲国产成人精品女人久久久| 日韩成人小视频| 国语对白做受69| 日本一区二区三区在线播放| 亚洲字幕在线观看| 最新91在线视频| 成人黄色大片在线免费观看| 色多多国产成人永久免费网站| 久久综合久久八八| 国产一区二区激情| 日韩成人在线播放| 欧美日韩国产精品一区二区三区四区| 亚洲精选中文字幕| 伊人久久大香线蕉av一区二区| 亚洲福利视频网| 国产精品免费一区| 亚洲自拍偷拍在线| 亚洲精品在线看| 久久综合免费视频影院| 亚洲wwwav| 亚洲精品欧美一区二区三区| 亚洲天堂av在线播放| 色综合伊人色综合网| 久久伊人精品视频| 亚洲欧美日韩国产成人| 国产精品视频公开费视频| 一本色道久久88综合亚洲精品ⅰ| 国产主播喷水一区二区| 麻豆国产精品va在线观看不卡| 久久这里有精品| 日韩亚洲精品电影| 欧美日韩综合视频网址| 久久久久久999| 欧美精品久久久久久久免费观看| 欧美激情综合亚洲一二区| 日本三级韩国三级久久| 亚洲加勒比久久88色综合| 亚洲欧美另类在线观看| 精品中文字幕乱| 免费91麻豆精品国产自产在线观看| 国产精品久久久一区| 98精品在线视频| 91久久精品国产91性色| 国产精品日韩久久久久| 欧美壮男野外gaytube| 亚洲一区二区免费在线| 亚洲区一区二区| 美女国内精品自产拍在线播放| 国产成人精品999| 国产精品久久久久一区二区| 亚洲精品按摩视频| 欧美成aaa人片在线观看蜜臀| 国产免费一区视频观看免费| 这里只有精品在线观看| 欧美成人h版在线观看| 亚洲精品国产精品自产a区红杏吧| 欧美性高跟鞋xxxxhd| 成人黄色在线观看| 成人国产精品久久久| 国模极品一区二区三区| 日韩精品中文字幕在线| 在线视频国产日韩| 7777精品久久久久久| 精品福利免费观看| 国产精品影片在线观看| www高清在线视频日韩欧美| 亚洲成人激情视频| 成人精品一区二区三区电影免费| 57pao成人永久免费视频| 久热爱精品视频线路一| 欧美在线视频一区二区| 亚洲精品欧美日韩专区| 美女精品视频一区| 国产999精品视频| 亚洲另类图片色| 亚洲成色777777女色窝| 国产日韩中文字幕在线| 一区二区欧美久久| 日韩电影中文字幕| 亚洲欧美国产一区二区三区| 亚洲va久久久噜噜噜久久天堂| 亚洲人成网在线播放| 欧美精品在线免费播放| 中文字幕欧美精品日韩中文字幕| 九九久久国产精品| 亚洲精品自产拍| 欧美激情videos| 欧美激情手机在线视频| 欧美在线视频免费播放| 欧美午夜视频一区二区| 亚洲自拍偷拍福利| 亚洲第一免费网站| 成人做爰www免费看视频网站| 欧美精品久久久久a| 亚洲国产美女精品久久久久∴| 日韩欧美在线国产| 国产区亚洲区欧美区| 国模视频一区二区三区| 国产精品久久电影观看| 国模gogo一区二区大胆私拍| 亚洲欧美三级伦理| 久久久女人电视剧免费播放下载| 91精品国产91久久久久| 国产精品美女无圣光视频| 精品调教chinesegay| 国产精品久久久久久久久久久久久久| 国产视频精品va久久久久久| 亚洲成人av中文字幕| 色在人av网站天堂精品| 国产亚洲精品久久久| 国产脚交av在线一区二区| 成人性生交大片免费看视频直播| 久久九九精品99国产精品| 亚洲国产一区二区三区在线观看| 97精品久久久中文字幕免费| 九九视频这里只有精品| 久久频这里精品99香蕉| 国产成人av在线播放| 亚洲国产天堂网精品网站| 日韩欧美中文字幕在线观看| 亚洲第一国产精品| 国产精品扒开腿做爽爽爽的视频| 亚洲欧洲第一视频| 国产91精品久久久| 国产成人综合一区二区三区| 久久久av网站| 91亚洲午夜在线| 国产丝袜一区二区三区| 色琪琪综合男人的天堂aⅴ视频| 国产精品一区二区三区成人| 欧美韩日一区二区| 亚洲女同性videos| 日韩高清中文字幕| 色综合视频一区中文字幕| 成人午夜两性视频| 亚洲国产天堂久久综合| 亚洲福利视频网站| 成人淫片在线看| 亚洲三级 欧美三级| 久久久久国色av免费观看性色| 亚洲精品白浆高清久久久久久| 欧美肥老太性生活视频| 中文字幕亚洲欧美日韩在线不卡|