美文网首页
Go语言学习笔记 - 表达式

Go语言学习笔记 - 表达式

作者: 技术学习 | 来源:发表于2016-08-23 10:33 被阅读85次

Golang关键字

break case chan const continus default defer else fallthrough for func go goto
if import interface map package range return select struct switch type var

Goang运算符

不支支持运算符重载。尤其需要注意,"++"、"--" 是语句而而非非表达式。

+  &  +=  &=  &&  ==  !=  (  )
-  |  -=  |=  ||  <  <=  [  ]
*  ^  *=  ^=  <-  >  >=  {  }
/  <<  /=  <<=  ++  =  :=  ,  ;
%  >>  %=  >>=  --  !  ...  .  :
&^  &^=

控制流

x := 0
if n := "abc"; x > 0 {// 初始化语句未必就是定义变量,比如 println("init") 也是可以的。
    println(n[2])
} else if x < 0 {// 注意 else if 和 else 左大大括号位置。
    println(n[1])
} else {
    println(n[0])
} 

循环

支支持三种循环方方式,包括类 while 语法。

s := "abc"
for i, n := 0, len(s); i < n; i++ {// 常见的 for 循环,支持初始化语句。
    println(s[i])
}
n := len(s)
for n > 0 {// 替代 while (n > 0) {}
    println(s[n])// 替代 for (; n > 0;) {}
    n--
}
for {// 替代 while (true) {}
    println(s)// 替代 for (;;) {}
}

Rang

类似迭代器操作,返回 (索引, 值) 或 (键, 值)。

            1st  value      2nd  value
------------------+-------------------+------------------+-------------------
string          index          s[index]    unicode,    rune
array/slice       index          s[index]
map            key           m[key]
channel         element

可忽略不想要的返回值,或用 "_" 这个特殊变量。

s := "abc"
for i := range s {// 忽略 2nd value,支支持 string/array/slice/map。
    println(s[i])
}
for _, c := range s {// 忽略 index。
    println(c)
}
for range s {// 忽略全部返回值,仅迭代。
    ...
}
m := map[string]int{"a": 1, "b": 2}
for k, v := range m {// 返回 (key, value)。
    println(k, v)
}

Switch

分支表达式可以是任意类型,不限于常量。可省略 break,默认自动终止。

x := []int{1, 2, 3}
i := 2
switch i {
  case x[1]:
    println("a")
  case 1, 3:
    println("b")
  default:
    println("c")
}

如需要继续下一分支,可使用 fallthrough,但不再判断条件。省略条件表达式,可当 if...else if...else 使用。

Goto,Break,Continue

支持在函数内 goto 跳转。标签名区分大小写,未使用标签引发错误。配合标签,break 和 continue 可在多级嵌套循环中跳出。

func main() {
L1:
  for x := 0; x < 3; x++ {
  L2:
    for y := 0; y < 5; y++ {
      if y > 2 { continue L2 }
      if x > 1 { break L1 }
        print(x, ":", y, " ")
    }
    println()
  }
}

附:break 可用于 for、switch、select,而 continue 仅能用于 for 循环。

相关文章

  • 笨办法学golang(三)

    这是Go语言学习笔记第三篇。 Go语言学习笔记参考书籍「Go语言圣经」以及Go官方标准库 Go语言基本类型主要有布...

  • 笨办法学golang(二)

    这是Go语言学习笔记的第二篇文章。 Go语言学习笔记参考书籍「Go语言编程」、Go官方标准库 前文提要 上篇文章中...

  • 笨办法学golang(四)

    这是Go语言学习笔记的第四篇 Go语言学习笔记参考书籍「Go语言圣经」以及Go官方标准库 数组 数组是指一系列同类...

  • Go 语言极速入门

    本系列文章主要是记录《Go 语言实战》和《Google 资深工程师深度讲解 Go 语言》的学习笔记。 Go 语言极...

  • Golang相关电子书

    Golang相关电子书,会不定期更新 Go语言程序设计 Go语言学习笔记.雨痕(详细书签) Go语言·云动力(云计...

  • Go语言学习笔记,持续更新...

    Go 学习笔记 Go语言变量和常量 1. 标识符 2. 关键字 Go语言中有25个关键字 break ...

  • Go语言学习笔记 - 表达式

    Golang关键字 Goang运算符 不支支持运算符重载。尤其需要注意,"++"、"--" 是语句而而非非表达式。...

  • Go并发调度

    本文是《循序渐进Go语言》的第六篇-Go并发调度。本文是学习《Go语言学习笔记》的并发调度一章,然后结合阅读源码的...

  • Golang聚合

    教程 Go Web 编程Go语言圣经(中文版) Tips Golang 学习笔记——交叉编译 & 部署Golang...

  • Go 语言学习技巧和编程思维

    Go 语言学习技巧和编程思维 一、了解 Go 语言 了解 Go 语言背景 学习 Go 语言,首先要了解 Go 语言...

网友评论

      本文标题:Go语言学习笔记 - 表达式

      本文链接:https://www.haomeiwen.com/subject/jvlgsttx.html