整型
uint 没有符号 也就是说没有 负号
int 有符号 可以是负数
在涉及到二进制传输、读写文件的结构描述时,为了保持文件的结构不会受到不同编译目标平台字节长度的影响,不要使用int和 uint
整型
package main import "fmt" func main(){ v := 0o377 //8进制 println(v)//自动转换成255 v2 := 0b00101101 //2进制 println(v2) //自动转换成 45 v3 := 0x1p-2 println(v3)//16进制 1 除以 22=1/4=0.25 var a int = 0xff //自动定义10进制 fmt.Printf("%d \n", a) // 10 %d 转为10进制 fmt.Printf("%b \n", a) // 1010 %b转为2进制 fmt.Printf("%o \n", a) //12 10进制转12进制 fmt.Printf("%x \n", a) //12 10进制转16进制 } 浮点型和复数 func main(){ fmt.Printf("%f\n", math.Pi) //3.141593 fmt.Printf("%.2f\n", math.Pi) //保留两位 3.14 var c1 complex64 c1 = 1 + 2i var c2 complex128 c2 = 2 + 3i fmt.Println(c1)//(1+2i) fmt.Println(c2)//(2+3i) } 布尔值 1.布尔型就是布尔 无法参与数值运算,也无法与其他类型进行转换 func main(){ var x bool fmt.Println(x) } 字符串(多行,字符串的操作) 1.字符串用双引号(“”) 2.字符表示单引(‘ ) func main(){ //多行 x :=`sada sadas` fmt.Println(x) x2 := "123" x3 := "456" //字符串格式化 xy:=fmt.Sprintf("您好啊 %s 大哥您的编号:%s",x2,x3) //格式化字符串 fmt.Println(xy) //您好啊 123 大哥您的编号:456 //字符串切割 xy2:=strings.Split("您好啊 %s 大哥您的编号:%s","大哥") //格式化字符串 fmt.Println(xy2,len(xy2)) //[您好啊 %s 您的编号:%s] 2 //是否包含 is_contains:=strings.Contains("您好","您") // strings.contains(string,substr)判断是否包含 fmt.Println(is_contains) //true //前缀和后缀判断 is_qianzhui1:=strings.HasPrefix("x123y","x") fmt.Println(is_qianzhui1) //true is_qianzhui2:=strings.HasPrefix("x123y","y") fmt.Println(is_qianzhui2) //false is_houzhui1:=strings.HasPrefix("x123y","x") fmt.Println(is_houzhui1)//true is_houzhui2:=strings.HasPrefix("x123y","y") fmt.Println(is_houzhui2)//false //子串出现的位置 weizhi:=strings.Index("123123","2") fmt.Println(weizhi) //1 第一次的未知 zuihou_weizhi:=strings.LastIndex("123123","2") fmt.Println(zuihou_weizhi) //4 最后一次的未知 }
字符
uint8类型,或者叫 byte 型,代表了ASCII码的一个字符。
rune类型,代表一个 UTF-8字符。
var name_str = "xzq谢志强" // 默认是btys类型 fmt.Println(len(name_str)) //12个字节 for _,val :=range name_str { //循环的是rune类型 代表utf8字符 fmt.Printf("循环出来的字符串值 %v \n",val) //现在是ASCII码的代码 %v不做处理循环什么就是什么 %c ASCII码的代码对应值 } //6次
修改字符串
//修改字符串 s1 := "big" x1 :=[]byte(s1) //需要转换成byte x1[0] ='p' fmt.Println(string(x1))
中文的需要转为rune
//中文转换 s2 := "白萝卜" runeS2 := []rune(s2) runeS2[0] = '红' fmt.Println(string(runeS2))
数据类型转换
fmt.Println(int64.11))