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
}