package main import "fmt" /** Go语言的基本类型有: 布尔:bool 字符串:string 有符号整数:int(取决于计算是32位还是64位)、int8、int16、int32、int64 无符号整数类型:uint(取决于计算是32位还是64位)、uint8、uint16、uint32、uint64、uintptr(没有指定具体的 bit 大小但是足以容纳指针) byte // uint8 的别名(代表了 ASCII 码的一个字符) rune // int32 的别名 代表一个 Unicode 码(代表一个 UTF-8 字符,当需要处理中文、日文或者其他复合字符时) float32(大约范围:1.4e-45到3.4e38)、float64(大约范围:4.9e-324到1.8e308) 当一个变量被声明之后,系统自动赋予它该类型的零值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil 等。所有的内存在 Go 中都是经过初始化的。 */ //声明全局变量 var web string = "http://www.hu-rong.com" //main里面声明的变量中局部变量,只在main内起作用 func main() { //打印全局变量 fmt.Println("全局变量web=" + web) //声明变量的一般形式是使用 var 关键字:变量的命名规则遵循骆驼命名法 var web string web = "www.hu-rong.com" fmt.Println("局部变量web=" + web) //变量批量声明变量 var ( age int = 37 name string = "hurry" ) fmt.Println("姓名:" + name) fmt.Print("年龄:") fmt.Print(age) fmt.Println() //也可以这样声明,根据值判断类型(类型推导) sex, height := "男", 170 fmt.Printf("性别:%s,身高:%d\n", sex, height) //也可以这样声明 city := "广州" fmt.Println(city); //变量的赋值 fmt.Println("---------------变量赋值-----------------") var a int = 100 var b int = 200 a, b = b, a //交换a,b fmt.Printf("a=%d,b=%d\n", a, b) //匿名变量:用下划线表示 fmt.Println("---------------匿名变量-----------------") c, _ := GetData() //只要第一个返回值,如果这样会报错c:=GetData(),因为GetData要返回两个int _, d := GetData() //只要第二个返回值 fmt.Println(c, d) //一个 float32 类型的浮点数可以提供大约 6 个十进制数的精度,而 float64 则可以提供约 15 个十进制数的精度, // 通常应该优先使用 float64 类型,因为 float32 类型的累计计算误差很容易扩散,并且 float32 能精确表示的正整数并不是很大 fmt.Println("---------------浮点数-----------------") var f float32 = 16777216 // 1 << 24 fmt.Printf("f+1=%.2f\n",f+1)//.2f表示保留2位小数 fmt.Println(f == f+1) // "true" var f1 float64=16777216 fmt.Printf("f1+1=%.2f\n",f1+1) fmt.Println(f1 == f1+1) // "false" fmt.Println("---------------布尔型-----------------") fmt.Println(a==b)//false fmt.Println(c==d)//false fmt.Println("---------------字符串:这就是一个字符串-----------------") var s string=`定义多行字符串:用反引号,键盘上 1 键左边的键 第2行 第3行\n` fmt.Println(s) fmt.Println("---------------字符-----------------") var A int = '\u0041' var aa int = '\u0097' fmt.Printf("%d - %d\n", A, aa) // integer 65 - 151 fmt.Printf("%c - %c\n", A, aa) // character A - fmt.Printf("%X - %X\n", A, aa) // UTF-8 bytes 41 - 97 fmt.Printf("%U - %U", A, aa) // UTF-8 code point U+0041 - U+0097 } func GetData() (int, int) { return 300, 400 }
运行结果:
全局变量web=http://www.hu-rong.com
局部变量web=www.hu-rong.com
姓名:hurry
年龄:37
性别:男,身高:170
广州
---------------变量赋值-----------------
a=200,b=100
---------------匿名变量-----------------
300 400
---------------浮点数-----------------
f+1=16777216.00
true
f1+1=16777217.00
false
---------------布尔型-----------------
false
false
---------------字符串:这就是一个字符串-----------------
定义多行字符串:用反引号,键盘上 1 键左边的键
第2行
第3行\n
---------------字符-----------------
65 - 151
A -
41 - 97
U+0041 - U+0097