1,运算符

算数运算符:+   -   *   /   %   ++   --

关系运算符:==    !=    <    >    <=    >==

逻辑运算符:按位与 &  按位或 |  异或 ^  左移<<  右移 >>

赋值运算符:=    +=  -=  *=  /=  等等算数运算符和逻辑运算符与 = 组合

其他运算符

运算符      术语      示例          说明
&   取地址运算符 &a 变量a的地址
*   取值运算符 *a 指针变量a所指向内存的值

2,流程控制

Go语言支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构。

选择结构

1)if

    var a int =
if a == { //条件表达式没有括号
fmt.Println("a==3")
} //支持一个初始化表达式, 初始化字句和条件表达式直接需要用分号分隔
if b := ; b == {
fmt.Println("b==3")
}

if ... else

    if a := ; a ==  {
fmt.Println("a==4")
} else { //左大括号必须和条件语句或else在同一行
fmt.Println("a!=4")
}

if ... else if ... else

    if a := ; a >  {
fmt.Println("a>3")
} else if a < {
fmt.Println("a<3")
} else if a == {
fmt.Println("a==3")
} else {
fmt.Println("error")
}

2)switch

Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码:

   var score int = 

    switch score {
case :
fmt.Println("优秀")
//fallthrough
case :
fmt.Println("良好")
//fallthrough
case , , :
fmt.Println("一般")
//fallthrough
default:
fmt.Println("差")
}

循环结构

1)for

 var i, sum int

    for i = ; i <= ; i++ {
sum += i
}
fmt.Println("sum = ", sum)

2)rang

关键字 range 会返回两个值,第一个返回值是元素的数组下标,第二个返回值是元素的值

    s := "abc"
for i := range s { //支持 string/array/slice/map。
fmt.Printf("%c\n", s[i])
} for _, c := range s { // 忽略 index
fmt.Printf("%c\n", c)
} for i, c := range s {
fmt.Printf("%d, %c\n", i, c)
}

跳转语句

1)break和continue

   for i := ; i < ; i++ {
if == i {
//break //break操作是跳出当前循环
continue //continue是跳过本次循环
}
fmt.Println(i)
}

注意:break可⽤于for、switch、select,⽽continue仅能⽤于for循环。

2)goto

用goto跳转到必须在当前函数内定义的标签

func main() {
for i := ; i < ; i++ {
for {
fmt.Println(i)
goto LABEL //跳转到标签LABEL,从标签处,执行代码
}
} fmt.Println("this is test") LABEL:
fmt.Println("it is over")
}

最新文章

  1. EasyPR--开发详解(7)字符分割
  2. Ubuntu 一直掉线 以及连不上网 解决办法
  3. 错误&quot;ORA-04091: table is mutating, trigger/function may not see it&quot;的原因以及解决办法
  4. robot framework 安装配置
  5. 一张图告诉你,只会jQuery还不够!
  6. Just Have a Change
  7. Vmware Ubuntu 虚拟机与Windows主机共享文件夹
  8. stm32f10x.h文件分析理解
  9. Log4Net配置 转
  10. c++中string类型可以直接进行比较
  11. BZOJ 1101 [POI2007]Zap ——Dirichlet积
  12. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新
  13. 一个基于angularJS的工资计算器
  14. [蓝桥杯]PREV-25.历届试题_城市建设
  15. [NOIP2017] 宝藏 【树形DP】【状压DP】
  16. 人工神经网络入门(4) —— AFORGE.NET简介
  17. map传参上下文赋值的问题
  18. Python入门:数据结构的4种基本类型
  19. BZOJ4541 HNOI2016矿区(平面图转对偶图)
  20. Python HTMLTestRunner 学习

热门文章

  1. iOS 隐藏导航栏后,UITableView向下偏移状态栏高度
  2. 小马哥-Java 微服务实践 - Spring Boot 系列-01Java 微服务实践 - Spring Boot 系列(一)初体验
  3. 科大讯飞sdk语音合成工具类
  4. kettle记录集(Merge Join)使用
  5. 2. bash基础
  6. 在HbuilderX的Uni-app中引入crypto-js md5
  7. 【JavaScript】初识js
  8. openstack——Rabbitmq集群部署
  9. 【并行计算-CUDA开发】GPGPU OpenCL/CUDA 高性能编程的10大注意事项
  10. 判断屏幕宽度px大小鉴别是移动设备或者PC