本文共 2506 字,大约阅读时间需要 8 分钟。
var a intvar b bool var c int8var ( m int n string)var name string = "nazha"func main(){ age := 18//声明变量age同时初始化;编译器会根据右边的初始值推断出age是什么类型}
const PI = 3.1415926const KB = 1024
Go中借助iota来实现枚举
const ( n1 = iota //0 n2 //1 n3 //2 n4 //3 )
使用双引号表示字符串 "hello"使用单引号表示字符 'h'字符串的常用方法
int int8 int16 int32 int64uint uint8 uint16 uint32 uint64
int是特殊的,会根据你的操作系统的位数来决定是int32还是int64
float32 flot64
浮点数永远都是不精确.
complex64和complex128
var a bool//默认是falsevar b = true
Go语言中布尔类型不能和其他类型做类型转换
英文字符用byte(ASCII码能表示的) 01010101 rune(中文,UTF8编码) 01010101 01010101 01010101
age := 20if age>18{ }else if 20 > 18 { }else{ }//此时age只在if语句中有效if age:=20;age>18{ }
//标准for循环 for i:=0;i<10;i++{ } //类似while循环 n := 10 for n>0 { fmt.Println(n) n-- } //无限循环 for { }
n := 10 switch n{ case 1: ... case 2: ... } switch { case n>0: ... case n ==0: ... }
Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码。
switch { case false: fmt.Println("The integer was <= 4") fallthrough case true: fmt.Println("The integer was <= 5") fallthrough case false: fmt.Println("The integer was <= 6") fallthrough case true: fmt.Println("The integer was <= 7") fallthrough case false: fmt.Println("The integer was <= 8") default: fmt.Println("default case") }
输出结果:
The integer was <= 5The integer was <= 6The integer was <= 7The integer was <= 8
fallthrough不能用在switch的最后一个分支。
Go 语言内置的运算符有:
算术运算符
关系运算符
逻辑运算符
位运算符
赋值运算符
其他 案例:以下假设A = 60 , B = 13 ,A的8位二进制:00111100 ,B的8位二进制:00001101
按位与运算符&:
A: 0 0 1 1 1 1 0 0 B: 0 0 0 0 1 1 0 1A&B: 0 0 0 0 1 1 0 0 对应位比较,如果都为1,那么按位与的结果为1,否则为0
按位或运算符|:A: 0 0 1 1 1 1 0 0 B: 0 0 0 0 1 1 0 1A|B: 0 0 1 1 1 1 0 1 对应位比较,只要有一个为1,那么按位或的结果为1,否则为0
按位异或运算符^:A: 0 0 1 1 1 1 0 0 B: 0 0 0 0 1 1 0 1A^B: 0 0 1 1 0 0 0 1 对应位比较,只要不相同就为1,否则为0
左移运算符<<A: 0 0 1 1 1 1 0 0 A<<2: 1 1 1 1 0 0 0 0A<<3: 1 1 1 0 0 0 0 0各二进位全部左移n位,超出总位数就丢弃在不丢弃的情况下,相当于10进制上乘以了2的n次方
右移运算符>>A: 0 0 1 1 1 1 0 0 A>>2: 0 0 0 0 1 1 1 1A>>3: 0 0 0 0 0 1 1 1各二进位全部右移n位,超出范围就丢弃在不丢弃的情况下,相当于10进制上除以了2的n次方
转载地址:http://yzhzi.baihongyu.com/