数字类型
-
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无符号整型,用于存放一个指针
package main
import "fmt"
func main (){
// 整型
n1 := 10 //十进制
fmt.Printf("%b\n",n1) // 二进制 1010
fmt.Printf("%o\n",n1) // 八进制 12
fmt.Printf("%x\n",n1) // 十六进制 a
n2 := 010 //十进制
fmt.Printf("%d\n",n2) // 8
n3 := 0x10 //十六进制
fmt.Printf("%d\n",n3) //16
//查看变量的数据类型
fmt.Printf("%T\n",n1) //int
}
浮点型
-
float32 IEEE-754 32位浮点型数
-
float64 IEEE-754 64位浮点型数
-
complex64 32 位实数和虚数
-
complex128 64 位实数和虚数
package main
import "fmt"
import "math"
func main (){
fmt.Println(math.MaxFloat32) //3.4028234663852886e+38
fmt.Println(math.MaxFloat64) //1.7976931348623157e+308
// 默认为float64
f1 := 3.1234
fmt.Printf("%T\n",f1) //float64
// 显示声明float32
f2 := float32(1.1121) // float32
fmt.Printf("%T\n",f2)
// 复数
var c1 complex64
c1 = 1 + 2i
fmt.Println(c1)
fmt.Printf("%T\n",c1) // complex64
}
布尔型
布尔型的值只可以是常量
true
或者false
,默认为false
,Go语言中不允许将整型强制转换成布尔型,布尔型变量无法参与运算,也无法与其他类型转换。
字符串
字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
package main
import "fmt"
import "strings"
func main() {
// 字符串用双引号表示 单引号表示字符 ``表示多行字符串
s := `
锄禾日当午,
汗滴禾下土。
谁知盘中餐,
粒粒皆辛苦。
`
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"
// 把字符串强制转换成rune切片
newS1 := []rune(s1)
newS1[1] = 'a'
// 把切片转换成字符串
fmt.Println(string(newS1)) //jarry
}
fmt总结
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
}