🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
数据类型 1、布尔类型 默认值是false a、定义:var b bool 和 var b bool = true 和 var b = true b、操作符 == 和 != c、取反 : !b d、 逻辑与 && 第一个为否,后面不需要运算 逻辑或 || 第一个为真,后面不需要运算 e、格式化输入占位符为: %t 2.整数和浮点数 a、int8、int16、int32、int64 代表所占的字节数 1/2/4/8 b、unit8、uint16、uint32、uint64 无符号 c、int和uint,和操作系统平台相关。 d、float32和float64浮点类型。 e、所有整数初始化为0,所有浮点数初始化为0.0,布尔值初始化为false 3、注意事项: a、go是强类型语言,不通类型相加以及复制是不允许的 b、要实现不同类型相加或其他运算,需要将类型进行转换。在转换是要将小的转换成大的,否则会造成内存溢出。 c、输出占位符:整数%d、%x十六进制、%f浮点数 ~~~ package main import ( "fmt" ) func main() { var a bool = true var b bool if b || a { fmt.Printf("%t\n",b) } var num int8 = 16 var num4 int32 = 123 if int(num4) > int(num) { fmt.Printf("%t\n",b) } } ~~~ 4、复数类型: a、两种形式:complex64和complex128 b、var c complex64 = 5 + 10i c、内置函数complex(re,mi) 构造一个复数。re实数 mi虚数 d、万能输出符: %v %%是将%号输出 %T是将类型输出 5、位操作 a、 与操作: & 1&1=1 1&0=0 0&1=0 0&0=0 b、或操作 1|1=1 1|0=1 0|1=1 0|0=0 c、异或:^ 1^1=0 1^0=1 0^1=1 0^0=0 6、位操作符 a、左移 << 1 << 10 =1024 1 << 20 = 1M b、右移 >> 1024 >> 10 = 1 1024 >> 1 = 512 7、示例: a、微博用户特权与位操作 1 微博红名 2 微博达人 3 VIP会员 4 vip超级会员 5 蓝钻用户 6 红钻用户 ~~~ package main import ( "fmt" ) const ( Hongming = 1 Daren = 1 << 1 vip = 1 << 2 ) type User struct { name string flag uint8 } func set_flag(user User, isset bool,flag uint8) User { if isset == true { user.flag = user.flag | flag } else { user.flag = user.flag ^ flag } return user } func is_set_flag(user User,flag uint8) bool { result := user.flag & flag return result == 1 } func main () { var user User user.name = "test" user.flag = 0 result := is_set_flag(user,Hongming) fmt.Printf("user is hongming:%t\n",result) user = set_flag(user,true,Hongming) result = is_set_flag(user,Hongming) fmt.Printf("user is hongming:%t\n",result) user = set_flag(user,false,Hongming) result = is_set_flag(user,Hongming) fmt.Printf("user is hongming:%t\n",result) } ~~~ 8、操作符 a、逻辑操作符 == != < <= >= b、算数操作符 + - * / %