#iota
#是Go中的一個常數計數器,只能在跟常數(const)一塊使用。
我們先來理解這一段話。
iota在const关键字出现时将被重置为0const中每新增一行常量,iota将计数(+1)一次
範例1:
package main import "fmt" func main() { const ( n1 = iota //在const关键字出现时将被重置为0 n2 //没写相当于写了个n2=iota,每新增一行常量iota计数(+1)一次,n2 = 1 n3 //同上 n3 = 2 n4 // 同上 n4 = 3 ) fmt.Println(n1, n2, n3, n4) }
範例2:
遇到_
會是什麼情況。
package main import "fmt" func main() { const ( n1 = iota //在const关键字出现时将被重置为0 n2 // n2=1 _ //匿名变量,相当于写了个 _=iota,所以此时iota=2 n4 //n4=3 ) fmt.Println(n1, n2, n4) }
範例3:
#一行多個iota
。
package main import "fmt" func main() { const ( a, b = iota + 1, iota + 2 //在const关键字出现时,iota=0,并且两次赋值在同一行,iota没有做+1 c, d //同理,新增一行常量,常量个数为俩,仍然是一行,所以iota=1 //c, d = iota + 1, iota + 2 同上,此时iota=1,c=2,d=3 e, f // 同理,同上,e=3,f=4 ) fmt.Println(a, b, c, d, e, f) }
整数,很简单了,就是像1,2,3,7,11,..
这样的整型数字了。
但是在Go中,整数分为两大类,正整数和没有符号的整数。
u开头的不能存负数
類型 | #描述 |
---|---|
uint8 |
無符號8位整數型(0 到255) |
uint16 |
|
|
無符號16位元整數(0 到65535)########################uint32###### ################無符號32位元整數(0 到4294967295)### |
uint64 |
# 無符號64位整數型(0 到18446744073709551615) |
##int8
|
##有符號8位元整數(-128 到127) |
int16 |
#有符號16位元整數(-32768 到32767) |
##int32 |
###有符號32位元整數(-2147483648 到2147483647)####### |
int64 |
#有符號64位元整數( -9223372036854775808 到9223372036854775807) |
在不同平台上的差異。
類型 | #描述 |
---|---|
uint |
32位元作業系統上就是uint32 ,64位元作業系統上就是uint64 |
|
########## ##################int######################32位元作業系統上就是###int32 ,64位元作業系統上就是#int64 |
##uintptr
|
#無符號整數,用來存放一個指標 |
|
|
len(str)
|
求長度 |
或fmt.Sprintf
|
######################################## ######拼接字串############################strings.Split############################strings.Split########### ##########分割####### |
strings.contains |
#判斷是否包含 |
strings.HasPrefix,strings.HasSuffix |
前綴/後綴判斷 |
#strings.Index(),strings.LastIndex() |
#子字串出現的位置 |
strings. Join(a[]string,sep string) |
#join運算 |
示例代码
package main func main() { //len() 求字符串字节长度 //var name = "你好,世界" //fmt.Println(len(name)) //因为中文是utf8,一个文字三个字节,再加一个,号,所以是13 //fmt.Sprintf 或 + 拼接字符串 //name1 := "张" //name2 := "三" //name :=name1 + name2 //拼接字符串 //fmt.Println(name) //name := fmt.Sprintf("%s%s", name1, name2)//同上,不过这种更灵活,推荐 //name := fmt.Sprintf("我的姓名是:%s%s", name1, name2)//自定义拼接 //fmt.Println(name) //strings.Split 分割字符串 //name := "张三|18|男|法外狂徒" //info := strings.Split(name, "|") //fmt.Println(info) //返回的是切片,[张三 18 男 法外狂徒] //strings.contains 是否包含 //name := "张三666" //result := strings.Contains(name, "6") //fmt.Println(result) //返回的是bool类型,true //strings.HasPrefix 判断前缀(是不是以什么开头) //name := "web/student/xxx.html" //result := strings.HasPrefix(name, "web") //fmt.Println(result) //true //strings.HasSuffix 判断后缀(是不是以什么结尾) //name := "web/student/xxx.html" //result := strings.HasSuffix(name, "html") //fmt.Println(result)//true //strings.Index() 返回第一个字符串出现的位置 //name := "hello world" //index := strings.Index(name, "o") //fmt.Println(index) //4 //strings.LastIndex() // 正向数,返回最后一个字符串出现的位置 //name := "hello world" //index := strings.LastIndex(name, "o") //fmt.Println(index) // 7 //strings.Join(a[]string, sep string) 字符串拼接 //info_list := []string{"张三", "男", "18"} //定义一个列表 //name := strings.Join(info_list, "|") //fmt.Println(name) //张三|男|18 }
以上是一篇文章帶你了解Go語言基礎之資料類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!