04.Go语言-变量与常量

2022-09-04 09:49:25 浏览数 (1)

第 4 章 变量与常量

4.1 变量

作用:给一段指定的内存空间起名,方便操作这段内存。

声明变量的一般形式是使用 var 关键字。

  • 方法一:声明一个变量, 默认的值是 0
代码语言:javascript复制
package main

  import "fmt"

  func main(){
      // 方法一:声明一个变量, 默认的值是0
      var a int
      fmt.Println("a = ", a)
      fmt.Printf("a的类型是: %Tn", a)
  }
  • 方法二:声明一个变量, 并初始化一个值
代码语言:txt复制
 package main

  import "fmt"

  func main(){
      // 方法二:声明一个变量, 初始化一个值
      var b int = 100
      fmt.Printf("b = %d, type of b = %Tn", b, b)

      var bb string = "从0到Go语言微服务架构师"
      fmt.Printf("bb = %s, bb的类型是: %Tn", bb, bb)
  }
  • 方法三:在初始化的时候,可以省去数据类型,通过值去自动匹配当前变量的数据类型
代码语言:txt复制
package main

  import "fmt"

  func main(){

      // 方法三:在初始化的时候,可以省去数据类型,通过值去自动匹配当前变量的数据类型
      var c = 100
      fmt.Printf("c = %d, type of c = %Tn", c, c)

      var cc = "Go语言微服务架构师核心22讲"
      fmt.Printf("cc = %s, cc的类型是: %Tn", cc, cc)
  • 短声明,只能在函数内
代码语言:txt复制
package main

  import "fmt"

  func main(){

      // 方法四:(常用的方法) 省去var关键字,使用:=,既推导数据类型又赋值
      // 注: 短声明是在函数或方法内部使用, 不支持全局变量声明!!!!
      e := 100
      fmt.Printf("e = %d, e的类型是: %Tn", e, e)

      f := "Go语言极简一本通"
      fmt.Printf("f = %s, f的类型是: %Tn", f, f)
  }
  • 多变量声明
代码语言:txt复制
package main

  import "fmt"

  func main(){
  	// 声明多个变量
      var xx, yy int = 100, 200
      var kk, wx = 300, "write_code_666(欢喜哥)"

      var (
          nn int = 100
          mm bool = true
      )
  }

4.2 常量

常量(constant)表示固定的值。在计算机程序运行时,不会被程序修改的。

  • 定义一个常量,使用 const 关键字。常量定义的时候就要赋值。
代码语言:txt复制
package main

  import "fmt"

  func main(){
      // 常量(只读属性)
      const length int = 10
      // length = 100  // 常量是不允许被修改的
      fmt.Println("length = ", length)
  }
  • 使用 const 来定义枚举类型
代码语言:txt复制
package main

  import "fmt"

  // const来定义枚举类型
  const (
      BEIJING = 0
      SHANGHAI = 1
      SHENZHEN = 2
  )

  func main() {
      fmt.Println("BEIJING = ", BEIJING)      // 0
      fmt.Println("SHANGHAI = ", SHANGHAI)    // 1
      fmt.Println("SHENZHEN = ", SHENZHEN)    // 2
  }
  • iota

iota 是 Go 语言的常量计数器,只能在常量的表达式中使用。

iota 在 const 关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。使用 iota 能简化定义,在定义枚举时很有用

代码语言:go复制
  package main

  import "fmt"

  // const来定义枚举类型
  const (
      // 可以在const()中添加一个关键字iota, 每行的iota都会累加1, 第一行的iota默认是0
      BEIJING = 10 * iota   // iota = 0
      SHANGHAI			  // iota = 1
      SHENZHEN			  // iota = 2
  )

  func main() {
      fmt.Println("BEIJING = ", BEIJING)      // 0
      fmt.Println("SHANGHAI = ", SHANGHAI)    // 10
      fmt.Println("SHENZHEN = ", SHENZHEN)    // 20
  }

4.3 关键字

关键字是 Go 语言中预先保留的单词,在程序中有特殊含义,不能用来定义变量或常量。

Go 语言中有 25 个关键字:

break

default

func

interface

select

case

defer

go

map

struct

chan

else

goto

package

switch

const

fallthrough

if

range

type

continue

for

import

return

var

0 人点赞