Golang学习之变量和常量

变量

声明

  • 变量命名方式:字母、数字和下划线组成,首个字符不能是数字,关键字和保留字不能被用作变量名

  • 变量声明后才能被使用,且声明后必须使用

  • 变量声明后,如果没有初始化,打印出来的是空

定义方式

  • 方式一:只定义
    var 变量名 类型
    var 变量名1,变量名2 类型
    var a int/stringvar a,b int/string

  • 方式二:定义,并赋值,类型靠golang自动推导
    var 变量名 = 值,相当于var 变量名 类型,变量名 = 值
    var 变量名1,变量名2 = 值1,值2
    var a = "kuofluo"相当于var a string,a = "kuofluo"

  • 方式三
    变量名 := 值,这种声明格式只能在函数体中出现
    变量名1,变量名2 := 值1,值2

常量

声明

常量的数据类型只能是布尔型、数字型(整数型、浮点型和复数),以及字符串型

定义方式

const 常量 [类型] = 赋值
const ( 常量1 = 值1 常量2 = 值2 常量3 = 值3 )

iota

iota是一种特殊常量,可以认为是一个可以被编译器修改的常量,相当于一个计数器,每次+1,iota在const关键字出现时,将被重置为0,const中每新增一行常量声明,便将iota计数一次

const ( a = iota b = iota c = iota )
第一个iota等于0,每当iota在新的一行被使用时,其值会自动+1,因此,a=0,b=1,c=2
可以简写为
const ( a = iota b c )
示例

package main

import "fmt"
const (
    i=1<<iota
    j=3<<iota
    k
    l
)

func main() {
    fmt.Println("i=",i)
    fmt.Println("j=",j)
    fmt.Println("k=",k)
    fmt.Println("l=",l)

输出:
    i= 1
    j= 6
    k= 12
    l= 24
    
解释:
iota 表示从 0 开始自动加 1,所以 i=1<<0, j=3<<1(<< 表示左移的意思),即:i=1, j=6,这没问题,关键在 k 和 l,从输出结果看 k=3<<2,l=3<<3。

简单表述:

i=1:左移 0 位,不变仍为 1。
j=3:左移 1 位,变为二进制 110,即 6。
k=3:左移 2 位,变为二进制 1100,即 12。
l=3:左移 3 位,变为二进制 11000,即 24。
注:<<n==*(2^n)。
posted @   Kuofluo  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示