package main import "fmt" import "unsafe" import "strconv" //全局变量 var( date = "2021-11-21" ) func main() { var b byte = 255 fmt.Println("b=", b) fmt.Printf("b 的数据类型 %T", b) var i int32 = 10 var f = 10.23 fmt.Printf("i 的数据类型 %T, i 所占字节数 %d \n", i, unsafe.Sizeof(i)) fmt.Printf("f 的数据类型 %T, f 所占字节数 %d \n", f, unsafe.Sizeof(f)) //float64 8个字节 var num1 float32 = 21.000987654321 var num2 float64 = 21.000987654321 fmt.Println("num1=", num1, "num2=", num2); var c1 byte = 'a' var c2 byte = 'b' fmt.Println("c1=", c1, "c2=", c2); //97, 98 fmt.Printf("c1=%c ,对应的码为%d \n", c1, c1); //a, 97 var c3 int = '北' fmt.Printf("c3=%c ,对应的码为%d \n", c3, c3); //a, 21271 var isTrue bool = true fmt.Printf("isTrue 的数据类型 %T, isTrue 所占字节数 %d \n", isTrue, unsafe.Sizeof(isTrue)) if isTrue { fmt.Printf("isTrue 的值为=%t \n", isTrue) } var funString string = ` var( company = "CSI" CEO = "TomCEO" ) ` fmt.Println("funString=", funString); var t = "goodmorning" var c = t[8] fmt.Printf("c=%c ,对应的码为%d \n", c, c); //i, 105 fmt.Printf("c 的数据类型 %T, c 所占字节数 %d \n", c, unsafe.Sizeof(c)) //unit8, 105 var sValue int32 = 18 var bValue int64 = int64(sValue) fmt.Printf("bValue 的数据值为 %v, bValue 的数据类型 %T, bValue 所占字节数 %d \n", bValue, bValue, unsafe.Sizeof(bValue)) //bValue 的数据值为 18, bValue 的数据类型 int64, bValue 所占字节数 8 //数字转为字符串转 var str = strconv.FormatInt(int64(sValue),10); fmt.Printf("str 的数据值为 %q, str 的数据类型 %T, str 所占字节数 %d \n", str, str, unsafe.Sizeof(str)) //str 的数据值为 "18", str 的数据类型 string, str 所占字节数 16 //字符串转为其他值 var k = "123456" var res int64 res, _ = strconv.ParseInt(k, 10, 64) fmt.Printf("res 的值 %v, res 的类型 %T",res, res) //res 的值 123456, res 的类型 int64 }