欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Go語言的數(shù)據(jù)類型-創(chuàng)新互聯(lián)

1 概述

Go語言作為類C語言,支持常規(guī)的基礎(chǔ)數(shù)據(jù)類型的的同時,支持常用的高級數(shù)據(jù)類型。他們是:

為永定等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及永定網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、成都做網(wǎng)站、永定網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
  • 整數(shù),int,uint,int8,uint8,int16,uint16,int32,uint32,int64,uint64
  • 浮點(小數(shù)),float32,float64
  • 復數(shù),complex
  • 字符,byte,rune
  • 字符串,string
  • 布爾,bool
  • 指針,pointor
  • 數(shù)組,array
  • nil
  • 切片,slice。(引用類型)
  • 映射,map
  • 結(jié)構(gòu)體,struct
  • 接口,interface
  • 函數(shù),func()

本篇相當于一個類型索引。包含了Go語言中的全部類型。具體每種類型的操作,請參見具體章節(jié)!

2 整數(shù),int

支持的整型分類很細,主要差異是占用的存儲空間不同?;谟袩o符號列出為:
有符號的:int,int8,int16,int32,int64
無符號的:uint,uint8,uint16,uint32,uint64

其中int, unit是基于處理器架構(gòu)的。意味著會根據(jù)處理器來確定是32bit還是64bit。
使用時,常常使用int?;蛘呤褂胕nt32保證兼容。
在類型推導時,推導的整型為int,其他長度整型需要在定義變量時強制聲明。
示例:

42
1024
-36

整型的默認值為0。

3 浮點數(shù),float

支持IEEE-754標準浮點數(shù)。支持32bit和64bit的浮點數(shù)float32和float64。
在類型推導時,推導的浮點型為float64。float32需要在定義變量時強制聲明。
示例:

1.0
3.14
0.618
4.2E10 // 4.2*10^10

浮點數(shù)的默認值為0。

4 復數(shù),complex32,complex64

原生支持復數(shù)。
支持32bit+32bit復數(shù)complex64,和64bit+64bit的復數(shù)complex128。

5 字符,byte,rune

使用單引號定義字符型數(shù)據(jù),字符指的是單個字符。有兩種byte和rune:
byte:單字節(jié)字符,是uint8的別名。用于存儲ASCII字符集字符
rune:多字節(jié)字符,是int32的別名。用于存儲unicode字符集字符。
在類型推導時,推導的字符型為rune。byte需要在定義變量時強制聲明。
示例:

'c'
'康'

字符的默認值是0。字符的本質(zhì)就是整數(shù)型,根據(jù)字符集得到對應(yīng)的字符。

6 字符串,string

原生支持字符串。使用雙引號("")或反引號(``)定義,內(nèi)部是utf-8編碼。
雙引號:"", 用于單行字符串。
反引號:``,用于定義多行字符串,內(nèi)部會原樣解析。
示例:

// 單行
"心有猛虎,細嗅薔薇"
// 多行
`
大風歌
大風起兮云飛揚。
威加海內(nèi)兮歸故鄉(xiāng)。
安得猛士兮守四方!
`

字符串支持轉(zhuǎn)義字符,列表如下:

  • \r 回車符(返回行首)
  • \n 換行符(直接跳到下一行的同列位置)
  • \t 制表符
  • \' 單引號
  • \" 雙引號
  • \\ 反斜杠
  • \uXXXX Unicode字符碼值轉(zhuǎn)義

7 布爾型,bool

布爾型的值只可以是常量 true 或者 false。
示例:

var (
  isFinished = false
  )

8 指針,pointer

指針類型用于存儲變量地址。使用運算符&,*完成操作。
使用運算符p:=&v可以獲取v變量的地址。p中的數(shù)據(jù)格式類似0xc0000b9528,是一個內(nèi)存地址的16進制表示。
使用運算符*p可以獲取指針p指向變量v的值。
如圖所示:

Go語言的數(shù)據(jù)類型

在Go語言中,指針主要用于:

  • 類型指針,對指針指向的數(shù)據(jù)進行修改。函數(shù)調(diào)用時傳遞參數(shù)使用指針,避免值傳遞拷貝額外數(shù)據(jù)。注意類型指針不能進行偏移和運算。
  • 切片,由指向起始元素的原始指針、元素數(shù)量和容量組成。
    示例:
    p := 42
    pv := &p
    *pv ++
    // p == 43

9 數(shù)組,array

數(shù)組是一段固定長度的連續(xù)內(nèi)存區(qū)域。是具有相同類型數(shù)據(jù)元素序列。元素類型支持任意內(nèi)置類型。
數(shù)組從聲明時就確定長度,可以修改數(shù)組元素,但是數(shù)組不可修改長度。
使用[長度]類型進行數(shù)組的聲明。
示例:

// 默認值初始化
var nums [4]int // [0 0 0 0]
// 指定初始值
var position = [4]string{"east", "south", "west", "north"}
// 自動確定長度
var position = [...]string{"east", "south", "west", "north"}

會使用類型默認值初始化元素。
數(shù)組不是引用類型,變量間為值傳遞。

可以使用range配合循環(huán)結(jié)構(gòu)完成遍歷,示例如下:

for k, v := range position {
    fmt.Println(k, v)
}
// 結(jié)果
0 east
1 south
2 west
3 north

10 nil

nil,可以理解為未初始化引用。是以下類型的默認初始值:

  • pointers -> nil
  • slices -> nil
  • maps -> nil
  • channels -> nil
  • functions -> nil
  • interfaces -> nil

11 切片,slice

切片是一個擁有相同類型元素的可變長度的序列。與數(shù)組的固定長度不同,切片也被稱之為動態(tài)數(shù)組。
Go提供了4中方案定義切片:

make ( []Type ,length, capacity )
  make ( []Type, length)
  []Type{}
  []Type{value1 , value2 , ... , valueN }

或者從數(shù)組或切片生成新切片:
slice [開始索引:結(jié)束索引]

  • slice 表示目標切片對象。
  • 開始索引和結(jié)束索引對應(yīng)目標切片的索引。
  • 不包含結(jié)束索引對應(yīng)的元素
  • 缺省開始索引,表示從頭到結(jié)束索引。
  • 缺省結(jié)束索引,表示從開始索引到末尾。
  • 兩者同時缺省時,全部切取,與切片本身等效。
  • 兩者同時為0時,等效于空切片,一般用于切片復位。
    var arr = [4]string{"a", "b", "c", "d"}
    var sli = arr[1:3] // ["b", "c"]

    以從數(shù)組創(chuàng)建切片為例,理解切片,定義語法如上所示,下圖為slice:

Go語言的數(shù)據(jù)類型

切片的實現(xiàn)是由一個底層數(shù)組以及其上面的動態(tài)位置,尺寸來實現(xiàn)。由內(nèi)部由指向起始元素的指針、元素數(shù)量length和容量capacity組成。其中:

  • 指針ptr,用于指向切片在底層數(shù)組的起始位置。
  • 尺寸len,用于記錄切片內(nèi)元素數(shù)量。
  • 容量cap,當前切片大容量,也就是底層數(shù)組的容量??梢詣討B(tài)分配。

切片為引用類型。
切片的默認初始值為nil。
切片支持: len()尺寸, cap()容量, append()追加元素等操作。詳見切片的使用。

12 映射,map

Go語言中的鍵值對(key->value)集合,稱之為映射map。
創(chuàng)建語法:
var m = map[key_type]value_type{key1: value1, key2: value2}
var m = make(map[key_type]value_type)
示例,字符串型下標,字符串型值:

var m = make(map[string]string) //make()會分配內(nèi)存空間,初始化。
m["east"] = "東"
m["west"] = "西"
fmt.Println(m["east"]) // 東
fmt.Println(m["west"]) // 西

// map演示
var m = map[string]string{"east": "東", "west": "西"}

支持遍歷操作,使用range:

for k, v := range mapVar {
    fmt.Println(k, v)
}

映射是引用類型。
詳見切片操作。

13 結(jié)構(gòu)體,struct

Go語言使用結(jié)構(gòu)體來描述現(xiàn)實業(yè)務(wù)邏輯中實體。是自定義類型。結(jié)構(gòu)體是由一系列數(shù)據(jù)構(gòu)成的數(shù)據(jù)集合,一系列數(shù)據(jù)類型可以不同。
定義結(jié)構(gòu)體,使用struct關(guān)鍵字:
type 結(jié)構(gòu)體名 struct {
成員1 類型
成員2 類型

}
示例:

// 定義Product結(jié)構(gòu)
type Product struct {
  // 兩個成員
  name  string
  price float64
}

// 構(gòu)造函數(shù)
func newProduct(name string, price float64) *Product {
  return &Product{name, price}
}

// 成員方法,接收器方式
func (p *Product) getName() string {
  return "《" + p.name + "》"
}

// 方法2
func (p *Product) setPrice(price float64) *Product {
  p.price = price
  return p
}

func main() {
  // 構(gòu)造Product型數(shù)據(jù)p1
  var p1 = newProduct("BlockChain", 42.5)
  // 訪問成員
  fmt.Println(p1.name)
  // 通過接收器訪問方法
  fmt.Println(p1.getName())
  var p2 = newProduct("GoLang", 30.5)
  p2.setPrice(44.5)
  fmt.Println(p2.price)
}

詳見結(jié)構(gòu)體操作。

14 接口,interface

接口是一種協(xié)議,用來規(guī)范方法的調(diào)用和定義的協(xié)議,目的是保證設(shè)計的一致性,便于模塊化開發(fā)以及通訊。Go語言中,也視為一種類型。
定義語法:
type 接口名 interface {
方法1( 參數(shù)列表 ) 返回值類型列表
方法2( 參數(shù)列表 ) 返回值類型列表

}
可以理解成沒有方法體的方法。
示例:

// 定義Product結(jié)構(gòu)
type Product struct {
  // 兩個成員
  name  string
  price float64
  // say   func()
}

// 構(gòu)造函數(shù)
func newProduct(name string, price float64) *Product {
  return &Product{name, price}
}

// 成員方法,接收器方式
func (p *Product) getName() string {
  return "《" + p.name + "》"
}

// 方法2
func (p *Product) setPrice(price float64) *Product {
  p.price = price
  return p
}

// 定義接口
type ProductInterface interface {
  getName() string
  setPrice(price float64) *Product
}

func main() {
  // 構(gòu)造Product型數(shù)據(jù)p1
  var p1 = newProduct("BlockChain", 42.5)
  // pi為接口,為其賦值p1,就意味著使用接口規(guī)范p1,若p1不滿足接口定義則出錯
  var pi ProductInterface = p1
  // 利用接口調(diào)用方法
  fmt.Println(pi.getName())
}

詳見接口操作

15 函數(shù),func()

Go語言中,函數(shù)可以作為數(shù)據(jù)存儲變量中,此時變量為函數(shù)類型func()。可以通過該變量訪問到這個函數(shù)??梢杂迷诮Y(jié)構(gòu)體成員定義上。
語法示例:

func sayHello(name string) {
  fmt.Println("Hello, ", name)
}

func main() {
  // 函數(shù)本身就是函數(shù)類型
  fmt.Printf("%T(%v)\n", sayHello, sayHello) // func(string)(0x48fe20)
  // 賦值給變量
  var f = sayHello
  fmt.Printf("%T(%v)\n", f, f) // func(string)(0x48fe20)
  // 匿名函數(shù)也是函數(shù)類型
  var af = func() {
  }
  fmt.Printf("%T(%v)\n", af, af) // func()(0x490080)
}

參見函數(shù)使用。

完!
原文出自:小韓說課
微信關(guān)注:小韓說課
Go語言的數(shù)據(jù)類型

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。

當前題目:Go語言的數(shù)據(jù)類型-創(chuàng)新互聯(lián)
鏈接分享:http://aaarwkj.com/article6/cogpog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站云服務(wù)器、靜態(tài)網(wǎng)站App設(shè)計、面包屑導航、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計
亚洲av一区二区在线看| 91精品国产色综合久久不| 性生活的视频免费观看麻豆| 亚洲中文字幕第11页| 清纯唯美亚洲自拍第一页| 成人黄网站色大片免费| 中文岳妇荡欲丰满肥熟| 萌白的所有视频在线观看| 熟女肥臀一区二区三区| 中文字幕制服日韩久久一区| 日本人妻内射一区二区| 风流少妇奶真白摸的好爽| 国产成人99亚洲综合精品| 国产午夜三级视频在线观看| 精品欧美熟妇高潮喷水特黄| 欧美亚洲伊人久久综合| 亚洲性图中文字幕在线| 最新手机免费黄色av网站| 永久黄区观看在线网址| 91老熟女露脸嗷嗷叫| 四虎影院成人精品久久| 国产伦理在线观看一区二区| 黄色亚洲日本欧美在线观看| 国产极白丝白浆日本国产| 深夜视频在线观看成人| 成人av在线天堂一区二区三区| 日韩欧美午夜福利在线视频| 九九热超在线视频精品| 国产精品日产三级在线观看| 亚洲一区二区三区小蜜桃| 久久精品国产亚洲av无| 日本不卡的三区四区五区| 欧美日本精品在线观看| 日本一区二区三区免费精品| 日韩欧美亚洲一级黄片| 国产精品国语对白av处女| 熟妇激情欧美在线播放视频| 久久日韩人妻中文字幕| 中国成熟女人毛茸茸视频| 草莓午夜视频在线观看| 中文字幕久精品视频免费|