Golang学习之路(三):Golang的常量和条件语句

简介: Golang学习之路(三):Golang的常量和条件语句

一、Golang常量


Golang中定义常量的方法与定义变量的一样,只是关键字由var切换为了const

这与js的es6标准中定义常量类似,都是使用const关键字,例如:

package main  // 声明 main 包,表明当前是一个可执行程序
import "fmt"
func main(){  // main函数,是程序执行的入口
  const a, b= 3, 4
  fmt.Println(a, b)
}

输出结果


3 4


需要说明的是,Golang中的局部变量定义后未使用会报错,但常量不会报错!


另外,如果我们一次性定义多个常量,但存在未赋值的常量,那么该常量的值会使用上一行常量定义的值:


package main // 声明 main 包,表明当前是一个可执行程序
import "fmt"
func main() { // main函数,是程序执行的入口
  const (
    a1 = 1
    a2
  )
  fmt.Println(a1, a2)
}


输出结果


1 1



二、iota—常量计数器

Golang中还有一个名为iota的特殊常量,它用于计数常量(const)出现的次数,走0开始计算,例如:

package main // 声明 main 包,表明当前是一个可执行程序
import "fmt"
func main() { // main函数,是程序执行的入口
  const (
    a1 = 1       // a1 = 0 iota=0(iota初始为0)
    a2 = 2       // a2 = 1 iota=1
    a3 = iota    //a3=iota;iota=2
    a4 = "hello" //iota=3
    a5 = iota    //iota=4
    a6
  )
  fmt.Println(a3, a4, a5, a6)
}

输出结果


2 hello 4 5


三、Golang条件语句


1. if 语句

Golang中的if语句不需要带括号:

package main
import "fmt"
func main() {
  //定义变量a=1
  a := 1
  fmt.Printf("a 的值为:%d\n", a)
  if a < 2 {
    //如果条件为 true 则执行以下语句
    fmt.Printf("a 小于 2\n")
  }
}

输出结果

a 的值为:1
a 小于 2

2. if … else 语句


需要注意的是,Golang中的else需要与上一个右括号}在同一行,否则会报错:

package main
import "fmt"
func main() {
  //定义变量a=3
  a := 3
  fmt.Printf("a 的值为:%d\n", a)
  if a < 2 {
    fmt.Printf("a 小于 2\n")
  } else {  //else需与}在同一行
    fmt.Printf("a 大于 2\n")
  }
}

3. if 语句嵌套


package main
import "fmt"
func main() {
  //定义变量a=4
  a := 4
  fmt.Printf("a 的值为:%d\n", a)
  if a < 2 {
    fmt.Printf("a 小于 2\n")
  } else {//else需与}在同一行
    if a == 3 {
      fmt.Printf("a 等于 3\n")
    } else {//else需与}在同一行
      fmt.Printf("a 不等于 3\n")
    }
  }
}


4. switch 语句


1)语法

注意:Golang的switch 默认情况下 case 最后自带 break 语句,无需我们手动写break;

package main
import "fmt"
func main() {
  //定义变量a=4
  a := 5
  fmt.Printf("a 的值为:%d\n", a)
  switch a {
  case 1:
    fmt.Printf("a 等于 1\n")
  case 2:
    fmt.Printf("a 等于 2\n")
  case 3,4:
    fmt.Printf("a 等于 3或者4\n") //可以多条件判断
  default:
    fmt.Printf("a 不等于1,2,3 4,a的值为:%d\n", a)
  }
}

2)fallthrough


使用 fallthrough 会强制执行后面一条的 case 语句,哪怕它不满足case(判断为true)条件:

package main
import "fmt"
func main() {
  //定义变量a=4
  a := 1
  fmt.Printf("a 的值为:%d\n", a)
  switch a {
  case 1:
    fmt.Printf("a 等于 1\n")
    fallthrough
  case 2: //由于上一条使用了fallthrough,所以我也会被执行
    fmt.Printf("a 等于 2\n")
  case 3,4:
    fmt.Printf("a 等于 3或者4\n") //可以多条件判断
  default:
    fmt.Printf("a 不等于1,2,3 4,a的值为:%d\n", a)
  }
}

输出结果


a 的值为:1
a 等于 1
a 等于 2


5. select 语句

待补充

目录
相关文章
|
12月前
|
缓存 机器人 Go
Golang 语言 beego 学习之安装和快速入门
Golang 语言 beego 学习之安装和快速入门
68 0
|
5月前
|
SQL 前端开发 Go
编程笔记 GOLANG基础 001 为什么要学习Go语言
编程笔记 GOLANG基础 001 为什么要学习Go语言
|
28天前
|
Go
Golang语言基础之常量和字面量
这篇文章讲解了Go语言中常量和字面量的概念、声明方式以及使用场景,特别对常量生成器iota的使用进行了详细说明和示例演示。
16 2
|
2月前
|
机器学习/深度学习 存储 人工智能
Golang bytes 包学习
Golang bytes 包学习
17 3
|
2月前
|
编译器 Go 开发者
详尽解析:Golang 中的常量及其使用
【8月更文挑战第31天】
33 0
|
3月前
|
编译器 Go C语言
通过例子学习在golang中调试程序
【7月更文挑战第4天】Go语言支持使用cgo进行汇编调试,官方文档在golang.org/doc/asm。注意,调试Go运行时可能遇到变量不可用或行号错误,需谨慎使用step命令。
63 1
通过例子学习在golang中调试程序
|
5月前
|
Go
golang学习参考记录
golang学习参考记录
|
5月前
|
JSON Go 数据格式
golang学习7,glang的web的restful接口结构体传参
golang学习7,glang的web的restful接口结构体传参
|
5月前
|
JSON Go 数据格式
golang学习6,glang的web的restful接口传参
golang学习6,glang的web的restful接口传参
|
5月前
|
Java Go 开发工具
golang学习1,dea的golang-1.22.0
golang学习1,dea的golang-1.22.0