02 - 【Go语言学习笔记】变量和常量

b1n90 · · 305 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

变量

  • Go语言的变量类型声明,可以选择手动指定自动推断,如下对于变量num的声明:
//手动指定int类型变量num
var num int = 1
//自动推断,使用 :=
num := 1

常量

  • 常量使用const关键词声明
  • 可以快速设置连续常量值,如下代码块:
package test

import (
    "testing"
)

const (
    ONE = iota + 1
    TWO
    THREE
    FOUR
    FIVE
)

func TestConst(t *testing.T) {
    t.Log(ONE, TWO, THREE, FOUR, FIVE)
}

运行结果:
=== RUN   TestConst
    my_test.go:16: 1 2 3 4 5
--- PASS: TestConst (0.00s)

此代码块中出现的iota关键字,上网查阅后,作用如下:

  • iota是golang语言的常量计数器,只能在常量的表达式中使用。
  • iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。
  • 使用iota能简化定义,在定义枚举时很有用。
    引用:https://studygolang.com/articles/2192
  • 对比特位进行快速连续设置值:
const (
    TOM = iota << 1
    JACK
    Lee
)
func TestConst2(t *testing.T) {
    a := 7 //7的二进制形式 0111
    t.Log(a&TOM == TOM, a&JACK == JACK, a&Lee == Lee)

    b := 1 //0001
    t.Log(b&TOM == TOM, b&JACK == JACK, b&Lee == Lee)
}

运行结果:
=== RUN   TestConst2
    fib_test.go:27: true true true
    fib_test.go:30: true false false
--- PASS: TestConst2 (0.00s)

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:b1n90

查看原文:02 - 【Go语言学习笔记】变量和常量

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

305 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传