zoukankan      html  css  js  c++  java
  • Go变量和常量

    变量

    由来

    程序运行过程中的数据都是保存在内存中,我们想要在代码中操作某个数据时就需要去内存上找到这个变量,但是如果我们直接在代码中通过内存地址去操作变量的话,代码的可读性会非常差而且还容易出错,所以我们就利用变量将这个数据的内存地址保存起来,以后直接通过这个变量就能找到内存上对应的数据了。

    变量声明

    • 标准声明

      var 变量名 变量类型
      // 例:
      var age int
    • 批量声明

      var (
          a string
          b int
          c bool
          d float32
      )

    变量初始化

    Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作。每个变量会被初始化成其类型的默认值,例如: 整型和浮点型变量的默认值为0。 字符串变量的默认值为空字符串。 布尔型变量默认为false。 切片、函数、指针变量的默认为nil

    • 标准初始化

      var 变量名 类型 = 表达式
      // 例:
      var age int = 18
      var age, name = 18, "xiaoming"
    • 类型推导

      当将变量的类型省略时,编译器会根据等号右边的值来推导变量的类型完成初始化

      var age = 18
      var name = "xiaoming"
    • 函数内部声明并初始化

      在函数内部,可以使用更简略的 := 方式声明并初始化变量。

      package main
      
      import (
          "fmt"
      )
      
      func main(){
          a := 100
          fmt.Println(a)
      }
    • 匿名变量

      在使用多重赋值时,如果想要忽略某个值,可以使用下划线_,例如:

      package main
      
      import (
          "fmt"
      )
      
      func fn()(int, string){
          return 18, 'xiaoming'
      }
      
      func main(){
          age, _ := fn()
          fmt.Println(age)
      }

      匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。

    tags:

    • 函数外的每个语句都必须以关键字开始(varconstfunc等)
    • :=不能使用在函数外。
    • _多用于占位,表示忽略值。

    常量

    相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。 常量的声明和变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值。

    常量声明

    • 标准声明

      const pi = 3.14
    • 多个声明

      const (
          a = 1
          b = true
      )
    • 省略值处理

      当使用const声明多个值时,如果省略了值,则会与上一行的值相同,如果开始的未声明则报错

      const (
          a1 = 100  // a1未声明则会报错
          a2  // 100
          a3  // 100
      )

    iota

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

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

    • 示例

      const (
          n1 iota  // 0
          n2  // 1
          n3  // 2
          n4  // 3
      )
    • 示例

      const (
          n1 iota  // 0
          n2  // 1
          _
          n4  // 3
      )
    • 示例

      const (
          n1 iota  // 0
          n2  =  11
          n3  // 2
      )
    • 示例

      const (
          _ = iota
          a_10 = 1<<iota
          a_100 = 1<<iota
          a_1000 = 1<<iota
      )
  • 相关阅读:
    MySQL单实例、多实例服务脚本
    Shell之case结构条件句
    Shell之函数
    Shell之条件测试
    Shell脚本数字比较与四则运算
    Shell之分支结构
    Shell之变量的数值计算与输入
    Shell之变量子串与变量替换
    表单和框架
    HTML部分标签和代码
  • 原文地址:https://www.cnblogs.com/jiaqi-666/p/11541027.html
Copyright © 2011-2022 走看看