package mainimport "fmt"func main() { //定义bool类型 //var gender = false //fmt.Println(gender) //相比python而言,go语言为什么有这么多种整数类型 //年龄、分数都是有上限的年龄不超过0-200 分数不超过0-150 //很多场景之下,数字有上限,我们可以选择合适的数据类型来降低内存的占用 //int是一种动态类型取决于机器本身 //var age int16 = 18 //fmt.Println(unsafe.Sizeof(age)) //fmt.Println(age) //float类型 //var weight float32 = 71.2 //fmt.Println(weight) //fmt.Println(math.MaxFloat32) //fmt.Println(math.MaxFloat64) //为什么64位的float最大值远大于int64位,float底层存储和int的存储不一样 //float32 float64 两者占用的内存不一样 64位的最大数和精度都比32位高 //weight := 71.2 //fmt.Printf("%T\n", weight) //age := 18 //fmt.Printf("%T\n", age) //byte 和 rune //byte 类型 //静态语言中 中文处理很容易出错 //var a byte = 18 //fmt.Println(a) a := 'a' //这里注意一下 //1. a+1可以和数字计算 2.a+1的类型是32 3. int类型可以直接变成字符 fmt.Printf("%T\n", a+1) fmt.Printf("a+1 = %c", a+1)}
operator
package mainimport "fmt"func main() { //算术运算符 //a := 12 //b := 22 //fmt.Println(a - b) //fmt.Println(a + b) //fmt.Println(a * b) //fmt.Println(a / b) //a++ //++a 不能前++ var a = true var b = false if a && b { fmt.Printf("第一行 - 条件为 true\n") } if a || b { fmt.Printf("第二行 - 条件为 true\n") } /* 修改 a 和 b 的值 */ a = false b = true if a && b { fmt.Printf("第三行 - 条件为 true\n") } else { fmt.Printf("第三行 - 条件为 false\n") } if !(a && b) { fmt.Printf("第四行 - 条件为 true\n") }}
var_convert
package mainimport ( "fmt" "strconv")func main() { //1. 基本的类型转换 //a := int(3.0) //fmt.Println(a) ////在go语言中不支持变量间的隐式类型转换 ////1.变量间类型转换不支持 ////var b int = 5.1 //5.0是常量 常量与变量支持 要求严格 ////fmt.Println(b) //c := 5.0 //fmt.Printf("%T\n", c) ////两种类型不一致 ////var d int = c //var d = int(c) //fmt.Println(d) //var a int64 = 56 //var b = int32(a) //fmt.Println(b) //int转字符串 itoa //fmt.Printf("%T\n", strconv.Itoa(int(a))) //字符串转int atoi //data, _ := strconv.Atoi("12") //fmt.Println(data) //parse类的函数 字符串转bool float int Uint //b, err := strconv.ParseBool("True") //fmt.Println(b, err) //f, err := strconv.ParseFloat("3.1415", 32) //fmt.Println(f, err) //fmt.Printf("%T\n", f) //base 将字符串中的数字进行解析, 以base的进制进行解析 //i, err := strconv.ParseInt("-12", 8, 64) //fmt.Println(i, err) //u, err := strconv.ParseUint("42", 10, 64) //fmt.Println(u, err) //其他类型转字符串 s1 := strconv.FormatBool(true) fmt.Println(s1) //true s2 := strconv.FormatFloat(3.1415, 'E', -1, 64) fmt.Println(s2) //3.1415E+00 s3 := strconv.FormatInt(-42, 16) fmt.Println(s3) //表示将-42转换为16进制数,转换的结果为-2a。 s4 := strconv.FormatUint(42, 16) fmt.Println(s4) //2a var data int var err error if data, err = strconv.Atoi("12"); err != nil { fmt.Println("转换出错") } fmt.Println(data)}