一、if语句
if 语句没有圆括号,而必需要有花括号跟条件和 else在同一行
例:
if myVar > 1 {
myVar = 1
myVar1++
return
} else {
myVar = 3
myVar1--
return
}
if的条件中可以添加一句初始化语句,用”;” 分隔
if c:=1;myVar > 1 {
myVar = 1
}
此变量c的作用域是在后面的{}内的。外面是不可见,同时如果不在后面使用也是会编译错误的。 [it招聘][1]
二、switch语句
跟一般语言不一样 case 匹配后,不会再往后匹配,如果要向后匹配,添加语句fallthrough
c := 5
switch 5 {
case 3:
fmt.Println("The integer was <= 4")
fallthrough
case 4:
fmt.Println("The integer was <= 5")
fallthrough
case 5:
fmt.Println("The integer was <= 6")
fallthrough
case 6:
fmt.Println("The integer was <= 7")
case 7:
fmt.Println("The integer was <= 8")
fallthrough
default:
fmt.Println("default case")
}
输出
The integer was <= 6
The integer was <= 7
这里注意case 后面的条件必须是相同类型,case后面可以是条件语句
swith 后面也可以为空。这样的话 自动匹配true case语句后面的条件语句必须返回true或者false(其实相当于多个ifelse); case 后面 也可以是 case 4,5,6: 表是4、5、6都匹配
三、for循环(go没有while)
for i := 0; i<10; i++{
fmt.Println(i)
}
可以break,推出当前层循环
i := 1
for i<10 {
fmt.Println(i)
if i > 9 {
break
}
i++
}
i :=1
for {
if i>10 {
break
}
i++
}
四、函数
函数定义:
func f(var1 int, var2 int) (a int, err error) {
a = var1 + var2
return
}
如果参数类型相同 上面的可以是这样:
func f(var1, var2 int) (a int, err error) {
a = var1 + var2
return
}
对返回值同样适用,如果有多个返回值:
func f(var1, var2 int) (a,b int, err error) {
a = var1 + var2
b = var1 - var2
return
}
调用方式
c1,c2,err = f(8,3)
另外闭包和不定参数 属于技巧性的东西这里就先不介绍了。
下一个直接进入面向对象方面的东西。
[1]: http://www.headin.cn/Jobs