Go语言基础--变量和常量

128 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

今天开始我们就到了Go的基础篇章了,前面的只是快速让我们入门

package main

import "fmt"

func main() {
   //标识符与关键字

   // 变量:1.类型;2.声明
   // var 变量名 变量类型

   //标准的变量声明
   var name string
   var age int
   var isRight bool

   //标准的批量变量声明
   var (
      a string
      b int
      c bool
      d float64
   )

   //变量的初始化
   //默认在声明变量时,会自动对变量对应的内存区域进行初始化操作
   //每个变量会被初始化成默认值
   // 整型和浮点型变量的默认值为0。 字符串变量的默认值为空字符串。
   //布尔型变量默认为false。 切片、函数、指针变量的默认为nil。
   //格式:var 变量名 类型 = 表达式
   var name string = "Tom"
   var age int = 18
   var isRight bool = true

   //批量初始化变量
   var name, age, isRight = "Jerry", 20, true

   //类型推导
   var name = "snoobe"
   var age = 9

   //短变量声明
   a := 10
   b := 20

   fmt.Println(a, b)

   //匿名变量: 使用多重赋值时,若要忽略某个值
   //可以使用它,用一个下划线_表示
   x, _, _ := foo()
   _, y, _ := foo()
   _, _, z := foo()
   fmt.Println("x = ", x)
   fmt.Println("y = ", y)
   fmt.Println("z = ", z)

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

   //注意事项:
   //1.函数外的每个语句都必须以关键字开始(var, const, func等)
   //2. := 不能使用在函数外
   //3. _ 多用于占位,表示忽略值

   //常量:不会更改的值
   //格式:const 变量名 变量类型
   const PI = 3.14

   //批量声明
   const (
      PI = 3.14
      E  = 2.71
      a  = 100
      b  //省略了值则表明和上一行的值相同
      c
   )

   // iota 是 go语言的常量计数器,只能在常量表达式中使用
   // 在const关键字出现时会被重置为0,每新增一行就会使iota
   // 计数一次,相当于索引
   
   const (
      n1 = iota  // 0
      n2       // 1
      n3       // 2
               // 3
      n5       // 4
      n6 = 100   // 100
      n7       // 6
      
   )
}

func foo() (int, string, bool) {
   return 10, "Tom", true
}