婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解go語言中type關鍵詞的幾種使用

詳解go語言中type關鍵詞的幾種使用

熱門標簽:重慶慶云企業400電話到哪申請 湛江crm外呼系統排名 寧波語音外呼系統公司 不封卡外呼系統 宿遷便宜外呼系統代理商 地圖標注免費定制店 上海極信防封電銷卡價格 鄭州智能語音電銷機器人價格 仙桃400電話辦理

type是go語法里的重要而且常用的關鍵字,type絕不只是對應于C/C++中的typedef。搞清楚type的使用,就容易理解go語言中的核心概念struct、interface、函數等的使用。以下我用例子代碼總結描述,請特別留意代碼中的注釋。

1、定義結構體

//結構體定義
type person struct {
name string //注意后面不能有逗號
age int
}
func main() {
//結構體初始化
p := person{
name: “taozs", //注意后面要加逗號
age: 18, //或者下面的}提到這兒來可以省略逗號
}
fmt.Println(p.name)
}
//初始化字段不一定要全部指定,比如下面也是可以的,name默認取長度為0的空字符串
p := person{
age: 18, 
}

2、類型等價定義,相當于類型重命名

type name string
name類型與string等價

例子:

type name string
func main() {
var myname name = "taozs" //其實就是字符串類型
l := []byte(myname)  //字符串轉字節數組
fmt.Println(len(l))  //字節長度
}

不過,要注意的是,type絕不只是用于定義一系列的別名。還可以針對新類型定義方法。
上面的name類型可以像下面這樣定義方法:

type name string
func (n name) len() int {
return len(n)
}
func main() {
var myname name = "taozs" //其實就是字符串類型
l := []byte(myname)  //字符串轉字節數組
fmt.Println(len(l))  //字節長度
fmt.Println(myname.len()) //調用對象的方法
}

3、結構體內嵌匿名成員

//結構體內嵌匿名成員定義
type person struct {
string //直接寫類型,匿名
age int
}
func main() {
//結構體匿名成員初始化
p := person{string: "taozs", age: 18}//可以省略部分字段,如:person{string: "taozs"}。也可以這樣省略字段名:person{“taozs”, 18},但必須寫全了,不可以省略部分字段
//結構體匿名成員訪問
fmt.Println(p.string) //注意不能用強制類型轉換(類型斷言):p.(string)
}

以下是只有單個匿名成員的例子。

//結構體內嵌匿名成員定義
type person struct {
string
}
func main() {
//結構體匿名成員初始化
p := person{string: "taozs"} //也可這樣:person{"taozs"}
//結構體匿名成員訪問
fmt.Println(p.string) //注意不能用強制類型轉換(類型斷言):p.(string)
}

4、定義接口類型

package main
import (
"fmt"
)
//接口定義
type Personer interface {
Run()
Name() string
}
//實現接口,注意實現接口的不一定只是結構體,也可以是函數對象,參見下面第5條
type person struct {
name string
age int
}
func (person) Run() {
fmt.Println("running...")
}
//接收參數person不可以是指針類型,否則不認為是實現了接口
func (p person) Name() string {
return p.name
}
func main() {
//接口類型的變量定義
var p Personer
fmt.Println(p) //值nil>
//實例化結構體,并賦值給interface
p = person{"taozs", 18} //或者:person{"taozs", 18}
p.Run()
fmt.Println(p.Name())
var p2 person = p.(person) //類型斷言,接口類型斷言到具體類型
fmt.Println(p2.age)
}

另外,類型斷言返回值也可以有第二個bool值,表示斷言是否成功,如下:

if p2, ok := p.(person); ok {//斷言成功ok值為true
fmt.Println(ok)
fmt.Println(p2.age)
}

5、定義函數類型

以下是定義一個函數類型handler

type handler func(name string) int

針對這個函數類型可以再定義方法,如:

func (h handler) add(name string) int {
return h(name) + 10
}

下面讓我們詳細看一下例子,其中涉及了函數、函數的方法、結構體方法、接口的使用。

package main
import (
"fmt"
)
//定義接口
type adder interface {
add(string) int
}
//定義函數類型
type handler func(name string) int
//實現函數類型方法
func (h handler) add(name string) int {
return h(name) + 10
}
//函數參數類型接受實現了adder接口的對象(函數或結構體)
func process(a adder) {
fmt.Println("process:", a.add("taozs"))
}
//另一個函數定義
func doubler(name string) int {
return len(name) * 2
}
//非函數類型
type myint int
//實現了adder接口
func (i myint) add(name string) int {
return len(name) + int(i)
}
func main() {
//注意要成為函數對象必須顯式定義handler類型
var my handler = func(name string) int {
return len(name)
}
//以下是函數或函數方法的調用
fmt.Println(my("taozs"))     //調用函數
fmt.Println(my.add("taozs"))    //調用函數對象的方法
fmt.Println(handler(doubler).add("taozs")) //doubler函數顯式轉換成handler函數對象然后調用對象的add方法
//以下是針對接口adder的調用
process(my)    //process函數需要adder接口類型參數
process(handler(doubler)) //因為process接受的參數類型是handler,所以這兒要強制轉換
process(myint(8))   //實現adder接口不僅可以是函數也可以是結構體
}

到此這篇關于詳解go語言中type的幾種使用的文章就介紹到這了,更多相關go語言type內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Golang極簡入門教程(一):基本概念
  • golang gorm 操作mysql及gorm基本用法
  • Golang 中整數轉字符串的方法
  • golang語言中for循環語句用法實例
  • 深入理解golang的基本類型排序與slice排序
  • Golang的循環中break和continue語句的用法講解
  • Golang讀寫Excel的方法教程

標簽:遼寧 海南 西雙版納 青海 物業服務 電子產品 安康 儋州

巨人網絡通訊聲明:本文標題《詳解go語言中type關鍵詞的幾種使用》,本文關鍵詞  詳解,語,言中,type,關鍵詞,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解go語言中type關鍵詞的幾種使用》相關的同類信息!
  • 本頁收集關于詳解go語言中type關鍵詞的幾種使用的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    91成人免费在线| 香蕉加勒比综合久久| 欧美一区二区三区视频在线| 99视频在线精品| 欧美三级乱人伦电影| 日韩免费看的电影| 国产亚洲美州欧州综合国| 精品无人码麻豆乱码1区2区| 国产日韩欧美综合在线| 色婷婷综合久久久中文一区二区| 亚洲综合无码一区二区| 国产盗摄女厕一区二区三区| 日韩欧美在线影院| 樱花影视一区二区| 欧美v亚洲v综合ⅴ国产v| 日韩精品专区在线影院观看| 欧美日韩成人综合天天影院| 不卡视频在线观看| 国产精品一色哟哟哟| 波多野结衣中文一区| 亚洲欧洲综合另类在线| 秋霞午夜av一区二区三区| 日韩精品色哟哟| 美国精品在线观看| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲妇熟xx妇色黄| 日本一区二区高清| 日韩一区二区精品葵司在线| 久久99九九99精品| 国产精品99久久久久久有的能看| 久久精品国产色蜜蜜麻豆| 亚洲电影在线播放| 麻豆精品国产91久久久久久| 国产精品久久久久7777按摩| 日韩电影免费一区| 成人免费毛片aaaaa**| 成人午夜伦理影院| 97精品国产露脸对白| 欧美精品777| 最新热久久免费视频| 亚洲午夜免费电影| 国产成都精品91一区二区三| 91激情在线视频| 国产偷v国产偷v亚洲高清| 91美女片黄在线观看| 久久亚洲综合av| 美女看a上一区| 欧美三级电影在线观看| 欧美极品xxx| 成人免费一区二区三区在线观看| 欧美国产欧美综合| 成人精品国产免费网站| 26uuu国产日韩综合| 亚洲国产中文字幕| 99re成人精品视频| 日本一区二区高清| 亚洲激情图片qvod| 奇米综合一区二区三区精品视频| 色狠狠综合天天综合综合| 国产精品人成在线观看免费| 欧美高清在线一区二区| 高清免费成人av| 国产精品每日更新| 6080亚洲精品一区二区| 天堂精品中文字幕在线| 欧美一区在线视频| 国产精品美女久久久久av爽李琼| 美国一区二区三区在线播放| 欧美一区二区三区白人| 蜜臀av国产精品久久久久| 麻豆成人久久精品二区三区红| 日本一区二区三区电影| 懂色av一区二区三区蜜臀| 婷婷综合另类小说色区| 久久国产精品99久久久久久老狼| 国产一区二区三区四| 99国产精品视频免费观看| 欧美一区二区三级| 中文字幕欧美激情一区| 亚洲人成网站精品片在线观看| 中文字幕一区二区三区在线播放 | 亚洲色图19p| 国产美女娇喘av呻吟久久| 日本韩国欧美在线| 国产欧美综合色| 久久国产精品第一页| 91亚洲国产成人精品一区二区三 | 精品一区二区综合| 91麻豆精品在线观看| 欧美国产丝袜视频| 久久精品国产秦先生| 91理论电影在线观看| **网站欧美大片在线观看| 99精品视频一区| 中文字幕一区二区三区在线不卡 | 美女免费视频一区| 欧美日韩亚洲另类| 亚洲综合av网| 欧洲国内综合视频| 亚洲成人自拍网| 国产精品久久久久aaaa樱花| 欧美在线播放高清精品| 毛片av一区二区三区| 国产精品蜜臀在线观看| 精品国产一区二区精华| 99精品视频在线播放观看| 亚洲精品一二三| 日韩欧美高清dvd碟片| 成人免费看的视频| 久久se这里有精品| 亚洲国产sm捆绑调教视频| 精品久久久久99| av不卡在线播放| 免费在线视频一区| 一区二区在线观看不卡| 久久九九国产精品| av在线一区二区| 亚洲国产日韩一区二区| 18成人在线观看| 亚洲三级视频在线观看| 婷婷综合久久一区二区三区| 亚洲国产成人av网| 夜夜嗨av一区二区三区| 日韩激情中文字幕| 美女视频网站久久| 国产成人av影院| 色诱视频网站一区| 国产视频在线观看一区二区三区| 国产精品国产三级国产普通话蜜臀 | 久久www免费人成看片高清| 亚洲第一福利一区| 一级女性全黄久久生活片免费| 国产亚洲成年网址在线观看| 日韩欧美一区在线| 欧美韩日一区二区三区四区| 精品精品欲导航| 中文成人av在线| 国产精品私人自拍| 欧美老女人第四色| 日韩精品一区在线| 欧美一级理论性理论a| 欧美日本视频在线| 久久精品一区二区三区四区| 国产精品日产欧美久久久久| 中文字幕不卡的av| 一区二区三区蜜桃| 亚洲成人www| 国产成人精品一区二区三区四区 | 蜜臀av性久久久久蜜臀av麻豆| 视频在线在亚洲| 国产一区二区伦理| 在线观看一区日韩| 日韩欧美综合在线| 亚洲另类春色国产| 精品一区二区在线视频| 欧美日韩黄视频| 2019国产精品| 夜夜嗨av一区二区三区四季av| 偷拍一区二区三区| aa级大片欧美| 日韩伦理免费电影| 福利电影一区二区三区| 96av麻豆蜜桃一区二区| 欧美日韩aaaaaa| 亚洲自拍偷拍九九九| 成人黄色免费短视频| 精品噜噜噜噜久久久久久久久试看 | 国产日韩视频一区二区三区| 午夜激情一区二区| 成人ar影院免费观看视频| 精品99999| 日韩精品电影在线观看| 风间由美一区二区av101| 亚洲欧美另类在线| 日本大胆欧美人术艺术动态| 91精品国产91久久久久久一区二区 | 在线区一区二视频| 蜜桃视频第一区免费观看| 久久久久国产精品麻豆ai换脸| 国产酒店精品激情| 亚洲国产精品综合小说图片区| 精品国产免费久久 | 蜜桃久久久久久| 国产亚洲一本大道中文在线| 欧美羞羞免费网站| 波多野结衣中文字幕一区| 免费日本视频一区| 国产精品久久久久一区二区三区共| 免费人成精品欧美精品| 欧美激情一区在线观看| 欧美午夜寂寞影院| 成人看片黄a免费看在线| 丝袜亚洲另类丝袜在线| 欧美mv和日韩mv国产网站| 在线视频你懂得一区二区三区| 亚洲国产日韩精品| 亚洲欧洲精品一区二区三区不卡| 国产人成亚洲第一网站在线播放| 欧美一区二区播放| 欧美一区二区精品|