數(shù)字類型
-
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)
-
byte類似于uint8,rune類似于uint32,uintptr無符號整型,用于存放一個(gè)指針
package main
import "fmt"
func main (){
// 整型
n1 := 10 //十進(jìn)制
fmt.Printf("%b\n",n1) // 二進(jìn)制 1010
fmt.Printf("%o\n",n1) // 八進(jìn)制 12
fmt.Printf("%x\n",n1) // 十六進(jìn)制 a
n2 := 010 //十進(jìn)制
fmt.Printf("%d\n",n2) // 8
n3 := 0x10 //十六進(jìn)制
fmt.Printf("%d\n",n3) //16
//查看變量的數(shù)據(jù)類型
fmt.Printf("%T\n",n1) //int
}
浮點(diǎn)型
-
float32 IEEE-754 32位浮點(diǎn)型數(shù)
-
float64 IEEE-754 64位浮點(diǎn)型數(shù)
-
complex64 32 位實(shí)數(shù)和虛數(shù)
-
complex128 64 位實(shí)數(shù)和虛數(shù)
package main
import "fmt"
import "math"
func main (){
fmt.Println(math.MaxFloat32) //3.4028234663852886e+38
fmt.Println(math.MaxFloat64) //1.7976931348623157e+308
// 默認(rèn)為float64
f1 := 3.1234
fmt.Printf("%T\n",f1) //float64
// 顯示聲明float32
f2 := float32(1.1121) // float32
fmt.Printf("%T\n",f2)
// 復(fù)數(shù)
var c1 complex64
c1 = 1 + 2i
fmt.Println(c1)
fmt.Printf("%T\n",c1) // complex64
}
布爾型
布爾型的值只可以是常量
true
或者false
,默認(rèn)為false
,Go語言中不允許將整型強(qiáng)制轉(zhuǎn)換成布爾型钞翔,布爾型變量無法參與運(yùn)算叶圃,也無法與其他類型轉(zhuǎn)換。
字符串
字符串就是一串固定長度的字符連接起來的字符序列勒魔。Go 的字符串是由單個(gè)字節(jié)連接起來的甫煞。Go 語言的字符串的字節(jié)使用 UTF-8 編碼標(biāo)識 Unicode 文本。
package main
import "fmt"
import "strings"
func main() {
// 字符串用雙引號表示 單引號表示字符 ``表示多行字符串
s := `
鋤禾日當(dāng)午冠绢,
汗滴禾下土抚吠。
誰知盤中餐,
粒粒皆辛苦弟胀。
`
fmt.Println(s)
// s2 := "jerry"
// 字符串的常用操作
// fmt.Println(len(s2))
// name1 := "jack"
// name2 := "rose "
// 字符串拼接1
// name3 := name1 + name2
// fmt.Printf("%s", name3)
// 字符串拼接2
// newName := fmt.Sprintf("%s,%s",name1,name2)
// fmt.Println(newName)
str := "a,d,c,w,e,a"
retStr := strings.Split(str, ",")
fmt.Println(retStr) // [a d c w e]
fmt.Println(strings.Join(retStr, "+")) //a+d+c+w+e+a
// fmt.Printf("%T\n",retStr)
// 包含
// fmt.Println(strings.Contains(str,"a")) //true
fmt.Println(strings.HasSuffix(str, "e")) //true
fmt.Println(strings.HasSuffix(str, "ee")) //false
fmt.Println(strings.HasPrefix(str, "a")) //true
fmt.Println(strings.HasPrefix(str, "aa")) //false
fmt.Println(strings.Index(str, "a")) //0
fmt.Println(strings.LastIndex(str, "a")) //10
ss := "hello 世界"
for _,c := range(ss){
fmt.Printf("%c\n",c)
}
// 字符串的修改
s1 := "jerry"
// 把字符串強(qiáng)制轉(zhuǎn)換成rune切片
newS1 := []rune(s1)
newS1[1] = 'a'
// 把切片轉(zhuǎn)換成字符串
fmt.Println(string(newS1)) //jarry
}
fmt總結(jié)
package main
import "fmt"
func main() {
n := 10
s := "hello"
fmt.Printf("%d\n", n) // 10
fmt.Printf("%b\n", n) //1010
fmt.Printf("%v\n", n) // 10
fmt.Printf("%o\n", n) //12
fmt.Printf("%x\n", n) // a
fmt.Printf("%T\n", n) // int
fmt.Printf("%T\n", s) // string
fmt.Printf("%v\n", s) //hello
fmt.Printf("%#v\n", s) // "hello"
fmt.Printf("%s\n", s) // hello
}