GO-基础变量类型

package main
import(
	"fmt"
	"unsafe"
)

//匿名变量:下划线"_",通常我们用匿名接收必须接收,但是又不会用到的值。

//变量声明
func f1(){
	var v1 string = "v1"
	var v2 = "v2"
	v3 := "v3"	//只能用于函数内部
	v4, v5 := "v4", "v5"
	var (
		v6 string = "v6"
		v7 string = "v7"
	)	//一般用于声明全局变量
	fmt.Println(v1, v2, v3, v4, v5, v6, v7)
}

//整型
func f2(){
	var(
		v1 int = 1
		v2 int8 = 1
		v3 int16 = 1
		v4 int32 = 1
		v5 int64 = 1
		v6 int = 0b1010
		v7 int = 0o12
		v8 int = 0xa
	)
	fmt.Printf("%T %d\n", v1, unsafe.Sizeof(v1))
	fmt.Printf("%T %d\n", v2, unsafe.Sizeof(v2))
	fmt.Printf("%T %d\n", v3, unsafe.Sizeof(v3))
	fmt.Printf("%T %d\n", v4, unsafe.Sizeof(v4))
	fmt.Printf("%T %d\n", v5, unsafe.Sizeof(v5))
	fmt.Printf("%d\n", v6)
	fmt.Printf("%d\n", v7)
	fmt.Printf("%d\n", v8)
}

//浮点型
func f3()  {
	//float32精确到后面6位,有效数字为7位 ?
	//float64精确到后面15位,有效数字为16位 ?
	var(
		v1 = 1.5
		v2 float32 = 0.123456789123456789
		v3 float64 = 0.123456789123456789
	)

	fmt.Printf("%.20f %T %d\n", v2, v2, unsafe.Sizeof(v2))
	fmt.Printf("%.20f %T %d\n", v3, v3, unsafe.Sizeof(v3))
	fmt.Printf("%f %T %d\n", v1, v1, unsafe.Sizeof(v1))
}

//byte、rune
func f4() {
	//在GO中,单引号用来表示字符,双引号用来表示字符串
	//byte与unit8本质上无区别,它表示的是 ACSII 表中的一个字符
	//rune与unit32本质上无区别,它表示的是 Unicode 表中的一个字符,故中文字符应该用rune表示

	var(
		v1 byte = 65
		v2 uint8 = 66
		v3 byte = 'A'
		v4 uint = 'B'
	)

	fmt.Printf("%T %d\n", v1, unsafe.Sizeof(v1))

	fmt.Printf("%d %d\n", v1, v2)
	fmt.Printf("%c %c\n", v1, v2)

	fmt.Printf("%d %d\n", v3, v4)
	fmt.Printf("%c %c\n", v3, v4)

	fmt.Println(string(v1), string(v2))		//byte转string,string转byte?
}

//字符串
func f5(){
	//string 的本质,其实是一个 byte数组
	//用反引号定义原生字符,转义符会当做普通字符处理
	//Go 语言的 string 是用 uft-8 进行编码,英文字母占用一个字节,而中文字母占用 3个字节,换行符占用一个字节

	var(
		v1 string = "hello"
		v2 [5]byte = [5]byte{104, 101, 108, 108, 111}
		v3 string = "world\n你好\n"
		v4 string = `world\n你好\n`
	)

	fmt.Printf("%d\n", len(v3))
	fmt.Printf("%d\n", len(v4))
	fmt.Printf("%s\n", v1)
	fmt.Printf("%s\n", v2)
	fmt.Print(v3)
	fmt.Print(v4)
}

func main(){
	f1()
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值