继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Go 快速入门指南 - 变量和常量

洋鱼土豆
关注TA
已关注
手记 37
粉丝 0
获赞 0

变量

关键字 var, 定义后可以修改。

语法规则

  • • var 关键字
var 变量名称 [变量类型] =  变量值
    
 # 例子
 var pi      float     =  3.14159

其中,变量类型为可选,因为编译器可以根据值来推断其类型 (建议指定类型,可以增强语义性)。

  • • 直接定义
变量名称 := 变量值

# 例子
pi := 3.14159

其中,不需要变量类型,因为编译器可以根据值来推断其类型。

注意事项

在函数中定义的变量,定义后必须使用,否则编译时会报错: Unused variable 'pi'

同时定义多个变量

var (
    变量名称 [变量类型] =  变量值
    变量名称 [变量类型] =  变量值
    变量名称 [变量类型] =  变量值
    ...
)

例子

package main

func main() {
   var (
      pi float64 = 3.14159
      page int = 1
      name = "abc"
   )

   println(pi)
   println(page)
   println(name)
}

// $ go run main.go
// 输出如下 
/**
    +3.141590e+000
    1
    abc
*/

显式/隐式

    1. 浮点类型
  • • 显式类型定义: var pi float64 = 3.14159

  • • 隐式类型定义: var pi = 3.14159

    1. 整型
  • • 显式类型定义: var page int = 1

  • • 隐式类型定义: var page = 1

    1. 字符串
  • • 显式类型定义: var name string = "abc"

  • • 隐式类型定义: var name = "abc"

    1. 其他类型以此类推

空白标识符

_ 是一个特殊的标识符,被称为空白标识符。 它可以像其他标识符那样用于变量的声明或赋值(任何类型都可以赋值给它),但任何赋给这个标识符的值都将被丢弃, 因此这些值不能在后续的代码中使用,也不可以使用这个标识符作为变量对其它变量进行赋值或运算。

示例

避免 “变量未使用” 错误

当定义一个变量后,一直未使用 (或者由于某些逻辑分支执行不到),为了避免运行报错,可以将其赋值给空白标识符。

package main

func main() {
    n := 1024
    _ = n // 如果没有这行代码,就会报错 Unused variable 'n'
}

忽略错误

package main

import "strconv"

func main() {
    n, _ := strconv.Atoi("1024")    // 函数的第 2 个返回值是一个错误类型值
    println(n)
}
// $ go run main.go
// 输出如下 
/**
    1024
 */

常量

关键字 const, 和其他编程语言中常量的语义一样,定义后无法修改。

语法规则

const 常量名称 [常量类型] =  常量值

# 例子
const Pi      float     =  3.14159

其中,常量类型为可选,因为编译器可以根据值来推断其类型 (建议指定类型,可以增强语义性)。

同时定义多个常量

const (
  常量名称 [常量类型] =  常量值
  常量名称 [常量类型] =  常量值
  常量名称 [常量类型] =  常量值
  ...
)

例子

package main

const (
   Sunday    = 0
   Monday    = 1
   Tuesday   = 2
   Wednesday = 3
   Thursday  = 4
   Friday    = 5
   Saturday  = 6
)

func main() {
   println(Sunday)
   println(Monday)
   println(Tuesday)
   println(Wednesday)
   println(Thursday)
   println(Friday)
   println(Saturday)
}

// $ go run main.go
// 输出如下 
/**
    0
    1
    2
    3
    4
    5
    6
*/

显式/隐式

    1. 浮点类型
  • • 显式类型定义: const Pi float64 = 3.14159

  • • 隐式类型定义: const Pi = 3.14159

    1. 整型
  • • 显式类型定义: const Page int = 1

  • • 隐式类型定义: const Page = 1

    1. 字符串
  • • 显式类型定义: const Name string = "abc"

  • • 隐式类型定义: const Name = "abc"

    1. 其他类型以此类推

赋值规则

常量的值必须在编译时就能确定。

  • • 正确的:const N = 10/2

  • • 错误的:const N = getNumber() // 引发构建错误: getNumber() used as value

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP