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