Golang学习之变量和常量
变量
声明
-
变量命名方式:字母、数字和下划线组成,首个字符不能是数字,关键字和保留字不能被用作变量名
-
变量声明后才能被使用,且声明后必须使用
-
变量声明后,如果没有初始化,打印出来的是空
定义方式
-
方式一:只定义
var 变量名 类型
var 变量名1,变量名2 类型
如var a int/string
,var 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)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!