接上一次的Go语言入门指南(一),这一部分比较简单跟Java比较类似,当然还是存在一些区别。
类型转换
bool类型不能转换成int
整型不能转换成bool
字符类型本质上就是整型
int(ch)
类型别名
type bigint int64//int64改名为bigint
运算符
算数运算符
+
-
*
/
%
++ 后自增,没有前自增
--
关系运算符
==
!=
<
<=
>=
逻辑运算符
!
&&
||
非0就是真,0就是假(但是go中bool和int不兼容)
位运算符
&按位与
|按位或
^异或
<<左移 左移n位就是乘以2的n次方,左边丢弃,右边补零 4<<2结果为16
>>右移 右移n位就是除以2的n次方,右边丢弃,左边补零 4>>2结果为1
赋值运算符
=
+=
-=
*=
/=
%=
<<=
>>=
&=
^=
|=
其他运算符
& 取地址运算符
*取值运算符
运算符优先级
从高到低
^ !
* / % << >> & &^
+ - | ^
== != < <= >= >
<-
&&
||
if
if 条件{
}
if 条件{
}else{
}
条件没有括号
左括号和if在同一行
//if支持1个初始化语句,初始化语句和判断条件以分号分隔
if a:=10; a==10{
}
多分支
if 条件 {
}else if 条件{
}else if 条件{
}else{
}
if 条件 {
}else if 条件{
}else if 条件{
}
循环
没有while do-while 只有for
for 初始条件;判断条件;条件变化{
}
迭代打印每个元素,默认返回两个值:一个是元素的位置,一个是元素本身
str:="abc"
for i,data:=range str {
fmt.Printf("str[%d]=%c\n",i,data)
}
for i:=ran ge str {//第二个返回值默认丢弃,返回元素的位置(下标)
fmt.Printf("str[%d]=%c\n",i,str[i])
}
switch
不需要break
switch 变量 {
case 1:
xxxxxx
case 2:
xxxxxxx
}
switch 变量 {
case 1:
xxxxxx
case 2:
xxxxxxx
default:
}
go语言保留了break关键字,跳出switch语句,不写默认就包含
fallthrough 不跳出switch语句,后面的无条件执行
支持一个初始化语句,初始化语句和变量本身,以分号分隔
switch 初始化语句;变量 {
case 1:
xxxxxx
case 2:
xxxxxxx
default:
}
可以 case 3,4,5:
score:=85
switch{//可以没有条件
case score>90://case后面可以放条件
fmt.Println("优秀")
case score>80://case后面可以放条件
fmt.Println("良好")
case score>70://case后面可以放条件
fmt.Println("一般")
default:
fmt.Println("其他")
}
break
for{//for后面不写任何东西,这个循环条件永远为真,死循环
}
break跳出循环,如果嵌套多个循环,跳出最近的那个内循环
continue跳过本次循环,下一次继续
break可用于for,switch,select而continue仅能用于for循环
goto
goto可以用在任何地方,但是不能跨函数使用
goto 标签
标签:
就先到这儿吧,也不知道Go语言入门要写几篇笔记才能写完。发现个奇怪的事情稀土掘金发笔记用markdown格式跟Typora显示的不太一样就+ *这些,Typora里后面不加空格直接换行不会变成点,但是在稀土掘金这边就会变成点。还有八分钟今天就又结束了,之后每一天都必须得发一篇笔记才行呢。