基本数据类型
Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。
整形
获取对象的长度的内建len()函数返回的长度可以根据不同平台的字节长度进行变化。
打印时可以用%d打印
八进制/十六进制
八进制以0开头,使用%o打印
十六进制以0x开头,使用%x打印
浮点型
Go语言支持两种浮点型数:float32和float64。这两种浮点型数据格式遵循IEEE 754标准: float32 的浮点数的最大范围约为 3.4e38,可以使用常量定义:math.MaxFloat32。 float64 的浮点数的最大范围约为 1.8e308,可以使用一个常量定义:math.MaxFloat64。
可使用%f打印,%.2f表示只打印2位小数
布尔值
布尔型数据只有true(真)和false(假)两个值。
字符串
Go 语言里的字符串的内部实现使用UTF-8编码。 字符串的值为双引号(")中的内容。多个byte集合,理解为一个字符序列,用双引号来表示!
例子:s1 := "ares"
单引号与双引号区别
v1 := 'A' v2 := "A" fmt.Printf("类型:%T,内容:%v\n",v1,v1) //类型:int32,内容:65 fmt.Printf("类型:%T,内容:%v\n",v2,v2) //类型:string,内容:A
字符串转义符
| 转义符 | 含义 |
|---|---|
| \r | 回车 |
| \n | 换行符 |
| \t | 制表符 |
| \' | 单引号 |
| \" | 双引号 |
| \ | 反斜杠 |
fmt.Println("\"Hello World!\"") //"Hello World!"
fmt.Println("\"Hello \t World!\"") //"Hello World!"
多行字符串
Go语言中要定义一个多行字符串时,就必须使用反引号字符"`"
字符串常用操作
代码示例:
package main import ( "fmt" "strings" ) //字符串操作 func main() { s1 := "ares" fmt.Println(len(s1)) //4 //字符串拼接 s2 := "GO" fmt.Println(s1 + s2) //aresGO s3 := fmt.Sprintf("%s----%s", s1, s2) fmt.Println(s3) //ares----GO //分割 ret := strings.Split(s1, "r") fmt.Println(ret) //[a es] //判断是否包含 ret2 := strings.Contains(s1, "a") ret3 := strings.Contains(s1, "a1") fmt.Println(ret2, ret3) //true false //判断前缀和后缀 ret4 := strings.HasPrefix(s1, "ar") //是不是以ar做前缀 ret5 := strings.HasSuffix(s1, "es1") //是不是以es1做后缀 fmt.Println(ret4, ret5) //true false //判断子串出现的位置 s4 := "applepen" fmt.Println(strings.Index(s4, "p")) //1 fmt.Println(strings.LastIndex(s4, "p")) //5 //join a1 := []string{"Python", "PHP", "JS", "Ruby", "Golang"} fmt.Println(a1) //[Python PHP JS Ruby Golang] fmt.Println(strings.Join(a1, "-")) //Python-PHP-JS-Ruby-Golang }