指针
Go 虽然保留了指针,但与其他变成语言不同的是,在 Go 当中不支持指针运算以及 ->
运算符,而直接采用 .
选择符来操作指针目标对象的成员
-操作符 &
取变量地址, 使用 *
通过指针间接访问目标对象
-默认值为 nil
而非 NULL
递增递减语句
在 Go 中, ++
与 --
是作为语句而不是作为表达式,只能放在变量右边
判断语句 if
-条件表达式没有括号
-支持一个初始化表达式(可以是并行方式)
-左括号必须和条件语句或 else
在同一行
-支持单行模式
-初始化语句中的变量为 block 级别,同时因此外部同名变量
-1.0.3版本中的编辑器BUG
a := 10
if a := 1; a > 0 {
//结果为 1
fmt.Println(a)
}
//结果为 10
fmt.Println(a)
循环语句 for
-Go 只有 for
一个循环语句关键字,但支持3种形式
-初始化和步进表达式可以是多个值
-条件语句每次循环都会被重新检查,因此不建议在条件语句中使用函数
-左括号必须和条件语句在同一行
a := 1
for {
a++
if a > 3 {
//跳出循环
break
}
}
for a <= 3 {
a ++
fmt.Println(a)
}
for i := 0; i < 3; i++ {
a++
fmt.Println(a)
}
选择语句 switch
-可以使用任何类型或表达式作为条件语句
-不需要写 break
,一旦条件符合自动终止
-如希望继续执行下个 case
,需使用 fallthrough
语句
-支持一个初始化表达式(可以是并行方式),右侧需跟分号
-左括号必须和条件语句在同一行
a := 1
switch a {
case 0:
fmt.Println("a=0")
case 1:
fmt.Println("a=1")
default:
fmt.Println("None")
}
//case中判断
switch {
case a == 0:
fmt.Println("a=0")
//使用 fallthrough 判断成立时继续判断下个判断语句,不跳出
fallthrough
case a == 1:
fmt.Println("a=1")
default:
fmt.Println("None")
}
switch a := 1; {
//...
}
跳转语句 goto
, breack
,continue
-三个语法都可以配合标签使用
-标签名区分大小写,若不使用会造成编译错误
-break
与 continue
配合标签可用于多层循环嵌套的跳出
-goto
是调整执行位置,与其他2个语句配合标签的结果并不相同
//定义循环体LABEL1
LABEL1:
for {
for i := 0; i < 10; i++ {
if i > 3 {
//跳出LABEL1
break LABEL1
//跳到LABEL2
goto LABEL2
}
}
}
fmt.Println("OVER")
//定义循环体LABEL2
LABEL2:
fmt.Println("OK")
当前内容版权归 Programming-With-Love 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 Programming-With-Love .