数据类型-go基本数据类型

Go语言是一种静态类型的编程语言。

数据类型

基本数据类型

布尔型

//布尔型在go语言中关键字是 bool
	// bool : true false
	// bool 默认值 false
	var isFlag bool = true
	var isCome bool

	fmt.Println(isFlag, isCome)

	//打印类型 "%T"
	fmt.Printf("%T,%t\n", isFlag, isFlag)

数字型

	//整型
	var age int = 18
	fmt.Printf("%T,%t\n", age, age)

	//浮点型
	//默认6位小数
	var money float64 = 3.14159265358979323846
	fmt.Printf("%T,%f\n", money, money)
	fmt.Printf("%T,%.2f\n", money, money)
	fmt.Printf("%T,%.20f\n", money, money)

uint8 无符号8位整型(0到255)

uint16 无符号16位整型(0到65535)

int8 有符号8位整型(-128到127)

int64 有符号64位整型(-9223372036854775808到9223372036854775807)

byte类似uint8

rune类似int32

uintptr 无符号整型,用于存放一个指针

字符串

	var str string
	str = "heo"
	fmt.Printf("%T,%s\n", str, str)

	//字符串英文 ASCII字符码
	a1 := 'A'
	//中文编码表  GBK
	a2 := '中'

	a3 := "A"

	fmt.Printf("%T,%d\n", a1, a1)
	fmt.Printf("%T,%d\n", a2, a2)
	fmt.Printf("%T,%s\n", a3, a3)

	//字符串连接
	fmt.Println("hello" + "come")
	fmt.Println("人" + "come")
	fmt.Println("人" + "2*8" + "go")
	

类型转换

Go语言类型转换必须是显式的

	//类型转换
	a := 3
	b := 5.0

	fmt.Printf("%T,%T\n", a, b) //int,float64

	//将Int转换成float
	c := float64(a)

	fmt.Printf("%T\n", c) //float64
	fmt.Println(c)		//3

	d := 300
	fmt.Printf("%T,%d\n", d, d) //int,300 
	e := byte(d)
	fmt.Printf("%T,%d\n", e, e) //uint8,44
	

运算符

算术运算符

+
-
/
*
%模(求余)
++自增
自减
	var a int = 10
	var b int = 3

	fmt.Println(a + b) //13
	fmt.Println(a - b) //7
	fmt.Println(a * b) //30
	fmt.Println(a / b) //3
	fmt.Println(a % b) //1
	a++
	fmt.Println(a) //11

	a = 10
	a--
	fmt.Println(a) //9

关系运算符

==等于返回true
!=不等于返回true
>大于返回true
<小于返回true
>=大于等于返回true
<=小于等于返回true
	var a int = 11
	var b int = 10

	fmt.Println(a == b) //false
	fmt.Println(a != b) //ture
	fmt.Println(a > b)  //true
	fmt.Println(a < b)  //false
	fmt.Println(a >= b) //true
	fmt.Println(a <= b) //false

逻辑运算符

&&AND,两边TRUE为TRUE
||OR,两边有一个TRUE为TRUE
NOT,TRUE NOT 为FALSE
	var a bool = true
	var b bool = false

	//if a == true && b == true {
	//	fmt.Println("两边都真,结果为真")
	//} else {
	//	fmt.Println("12")
	//}

	//两边都真,结果为真
	fmt.Println(a && b) //false
	//有一个真,结果为真
	fmt.Println(a || b) //true
	//真变假
	fmt.Println(!a) 	//false

位运算符

&有0为0
|有1为1
^不同为1,相同为0
&^位清空,a&^b,对于b上的每个数值,如果为0,则取a对应位上的数值,如果为1,则取0.
<<a<<2,a都左移2位"<<"右边的数指定移动的位数,高位丢弃,低位补0。
>>a>>2,a都右移2位">>"右边的数指定移动的位数
	var a uint = 60
	var b uint = 13
	var c uint = 0

	c = a & b
	fmt.Printf("%d,二进制%b", c, c) //12,二进制0000 1100
	fmt.Println("\n")

	c = a | b
	fmt.Printf("%d,二进制%b", c, c) //61,二进制0011 1101
	fmt.Println("\n")

	c = a ^ b
	fmt.Printf("%d,二进制%b", c, c) //49,二进制0011 0001
	fmt.Println("\n")

	c = a << 2
	fmt.Printf("%d,二进制%b", c, c) //240,二进制1111 0000
	fmt.Println("\n")

	c = a >> 2
	fmt.Printf("%d,二进制%b", c, c) //15,二进制0000 1111
	fmt.Println("\n")

赋值运算符

=赋值
+=相加后赋值A+=B : A = A+B
-=相减后赋值
*=相乘后赋值
/=相除后赋值
%=求余后赋值
<<=左移后赋值
>>=右移后赋值
&=按位与后赋值
^=按位异或后赋值
|=按位或后赋值
	var a int = 21
	var b int = 10
	var c int
	var d int = 2

	c = a
	fmt.Println(c)

	b += a
	fmt.Println(b)

	b -= a
	fmt.Println(b)

	b *= a
	fmt.Println(b)

	b /= a
	fmt.Println(b)

	b %= a
	fmt.Println(b)

	d <<= b
	fmt.Println(d)

	d >>= b
	fmt.Println(d)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值