package main import ( "fmt" "math" ) func main() { type_() } func type_() { var age int = 12 // 设定类型为数字 fmt.Println(age) var text = "Hello mfk\n" // 自动识别类型 fmt.Printf(text) // uint + x // x 是比特的位数 var u8 uint8 = 255 //u 只能存正整数 // 0 0 0 0 0 0 0 0 = 0 // 1 1 1 1 1 1 1 1 = 2^8-1=255 fmt.Println(u8) // int8 支持正负数 // 0 0 0 0 0 0 0 0 = 1 // 0 1 1 1 1 1 1 1 = 2^(8-1)-1=127 // 一个比特位区分正负了 // 1 0 0 0 0 0 0 1 = -1 负数的最大值 // 1 0 0 0 0 0 0 0 = -128 //###################################################### // 源码 补码 (取反=反码+1)听不懂,标记一下,下次学 //###################################################### // 测试 64位上限 fmt.Print(math.Pow(2, 63)) var n1 int = 9223372036854775807 fmt.Println(n1) //var n2 int = 9223372036854775808 error //fmt.Println(n2) // 浮点型 // float32 // float64 // 这两种 // 字符型 // 重点 byte(单字节类型字符) rune(多字节类型字符) var a byte = 'a' // ascii 里面的字符 fmt.Printf("%c %d\n",a, a) // %c 打印字符 %d 打印ascii位置 var a1 uint8 = 97 fmt.Printf("%c %d\n",a1, a1) var z rune = '中' // int32 fmt.Printf("%c %d\n",z, z) // 字符串型 var s string = "字符串是双引号\n" fmt.Printf(s) // 常见转译字符 fmt.Println("你好\t世界") // 空格 fmt.Println(" ‘你好’ 世界") // 单引号 fmt.Println(" \"你好\" 世界") // 双引号 fmt.Println("\n你好\n\n世界") // 换行符号 fmt.Println("C:\\Users\\SkimrMe\\Desktop\\sex_game\\") // 适用于windwos路径的输出 // 多行字符串 不能用转译字符 fmt.Print(` 今天 是 🥣 俄方片,, 个 好 日 子 ✅ ∂ƒ¬ß¬πø´øø∑˚ßœ∑´®†¥˙¨∆˚∂ƒ©˙∆µ≈ç√∫˜µß∂ƒ©˙∆ß `) fmt.Println("隔开") // 布尔类型的讲的好少听不懂,下次重新找教程 // 零值问题 // 如果我们给一个基本数据类型只声明不赋值 打印的是0或者false,"" var q1 int var q2 float32 var q3 string var q4 bool fmt.Printf("%#v\n", q1) fmt.Printf("%#v\n", q2) fmt.Printf("%#v\n", q3) fmt.Printf("%#v\n", q4) }