1、数据类型
package main import ( "fmt" "reflect" ) func main() { //整形 var v1 int32 v1 = 123 v2 := 64 fmt.Println(v1,v2,reflect.TypeOf(v2)) //123 64 int //浮点型 var f1 float32 f1 = 12 f2 := 12.0 fmt.Println(f1,f2,reflect.TypeOf(f2)) //12 12 float64 //布尔型 var b1 bool b1 = true b2 := (1==2) fmt.Println(b1,b2,reflect.TypeOf(b2)) //true false bool //字符型,用单引号 var ch byte ch = 'a' fmt.Println(ch,reflect.TypeOf(ch)) //97 uint8 fmt.Printf("ch = %c",ch) //ch = a //字符串,用双引号 var s1 string s1 = "test" fmt.Println(s1,reflect.TypeOf(s1)) //反引号,原样输出 s2 := `test \n \r xx` fmt.Println(s2,reflect.TypeOf(s2)) //test \n \r xx string } //基本的数据类型 //u开头是无符号的类型 //8 16 32最大的作用是增加可移植性和可维护性
2、格式化输出
%b-------------二进制
%c-------------字符型
%t--------------布尔型
%s-------------字符串型
%f-------------浮点型
%g------------紧凑型的浮点型
%d-----------数字型
%p-----变量的内存地址
%T-----变量的类型
package main import "fmt" func main() { a := []int {1,2,34} fmt.Printf("%p--->%T",a,a) //0x1f446070--->[]int }
----------------------------------------------------------------------------------------------
package main import "fmt" func main() { a := 15 fmt.Printf("a = %b\n",a) //a = 1111 //%b是二进制 //如果想输出一个%,则需要这么处理 fmt.Printf("%%\n") //% //字符 ch := 'a' fmt.Printf("ch = %c,%c\n",ch,97) //ch = a,a //%c是字符型 fmt.Printf("ch = %d\n",10) //%d表示数字 f := 3.14 fmt.Printf("f = %f,%g\n",f,f) //f = 3.140000,3.14 //%f是正常的浮点数 //%g是浮点数的紧凑的表达形式 fmt.Printf("%t,%t\n",true,false) //true,false //%t表示布尔值 s := "hello world" fmt.Printf("%s\n",s) //hello world //%s表示字符串 }