Go语言入门【1】数据类型、变量、常量
创始人
2024-04-03 12:30:02
0

常见基本数据类型

uint8:无符号8位整形,取值范围:0-255

uint16:无符号16位整形,取值范围:0-65535

uint32:无符号32位整形,取值范围:0-4294967295

uint64:无符号64位整形,取值范围:0-18446744073709551615

uint:32 或 64 位

int8:有符号8位整形,取值范围:-128-127

int16:有符号16位整形,取值范围:-32768-32767

int32:有符号32位整形,取值范围:-2147483648-2147483647

int64:有符号64位整形,取值范围:-9223372036854775808-9223372036854775807

int:与uint一样大小

byte:类似 uint8

rune:类似 int32

float32:32位浮点类型

float64:64位浮点类型

string:字符串

bool:布尔类型,取值true或false

变量

Go 语言变量名由字母、数字、下划线组成,首字符不能为数字,不能使用关键字作为变量名。

Go语言中的25个关键字:

image-20220114162851723

使用关键字var,并指定变量类型

// 声明单个变量
var 变量名 变量类型
// 声明多个变量
var 变量名1, 变量名2 变量类型

初始化变量

// 声明并初始化单个变量
var 变量名 变量类型 = 值
// 声明并初始化多个变量
var 变量名1, 变量名2 变量类型 = 值1, 值2

示例1,当只声明不初始化变量时,则输出默认值,int类型默认值为0,string默认值为""空字符串,bool类型默认false

package mainimport "fmt"func main() {var s stringfmt.Println(s)						// 输出var a, b intfmt.Println(a, b)					// 输出0 0
}

示例2:声明并初始化变量

package mainimport "fmt"func main() {var s string = "hello world"fmt.Println(s)						// 输出hello worldvar a, b int = 1, 2fmt.Println(a, b)					// 输出1 2
}

使用关键字var,不指定类型

var 变量名 = 值

示例:

package mainimport "fmt"func main() {var s = "hello world"fmt.Println(s)				// 输出hello worldvar a, b = 1, 2fmt.Println(a, b)			// 输出1 2
}

使用:=

变量名 := 值

示例:

package mainimport "fmt"func main() {s := "hello world"fmt.Println(s)				// 输出hello worlda, b := 1, 2fmt.Println(a, b)			// 输出1 2
}

使用该方法,如果某个变量在之前已经使用var的方式进行了声明,再使用:=方式会出现编译错误,但是可以使用=进行复制不会报错。

多变量声明

该方法声明变量多用于声明全局变量

var(变量名1 变量类型 = 值1		// 同样可以不指定变量类型,使用 变量名 = 值 的形式,但是不能使用 := 变量名2 变量类型 = 值2
)

示例:

package mainimport "fmt"var (s string = "hello world"a int = 1b int = 2
)func main() {fmt.Println(s)				// 输出hello worldfmt.Println(a, b)			// 输出1 2
}

变量注意事项

  1. 在GO语言中,如果声明了一个变量,就必须使用,如果变量声明了但是不使用就会报错。
  2. 全局变量可以只声明不使用不会报错。

常量

常量就是不会改变的值,一般用于用于在程序运行期间不会被改变的值,常量和变量的声明类似,只是将var关键字变成了const。与变量不同的是,常量在声明的时候必须赋值。

使用const定义常量

示例:

package mainimport "fmt"// 多常量声明
const (s = "hello world"a = 1
)func main() {const PI = 3.1415							// 不指定常量类型const E float32 = 2.7182			// 指定常量类型fmt.Println(s)								// 输出hello worldfmt.Println(a)								// 输出1fmt.Println(PI)								// 输出3.14fmt.Println(E)								// 输出2.7182
}

iota

iota是Go语言中的常量计数器,只能在常量的表达式中使用,iota在const出现时被初始化为0,在const中每增加一个常量定义,则iota加1。

示例:

package mainimport "fmt"// 多常量声明
const (a = 1					// iota = 0b = 2					// iota = 1c = iota				// iota = 2
)func main() {const d = iota			// iota = 0fmt.Println(d)			// 输出0fmt.Println(c)			// 输出2
}

相关内容

热门资讯

贵州百灵纾困纠纷背后:新希望与... 近日,苗药龙头贵州百灵(002424)与华创证券之间的纾困纠纷一直是市场关注的重点,自2025年8月...
*ST南置(002305)披露... 截至2025年12月29日收盘,*ST南置(002305)报收于2.23元,较前一交易日上涨0.9%...
原创 普... 俄罗斯总统弗拉基米尔·普京签署法律,禁止在俄罗斯境内执行外国刑事法院和国际法院的裁决 相关文件已在俄...
盒马购得面包发馊变臭!商家“仅... 面包发馊发臭 近日,市民刘女士向“新民帮侬忙”反映,从盒马鲜生购入的日式面包,竟然发馊发臭!然而事发...
当年龄不再是“免罚金牌”,彰显... 文/九派新闻特约评论员 舒圣祥 明年1月1日起,新修订的《治安管理处罚法》即将正式施行。新法专门新增...
2026年1月1日起施行!“被... 2025年新修订的治安管理处罚法将于2026年1月1日起施行,针对新修订的内容中与市民生活息息相关的...
“车企起诉电池企业第一案”:2... 编者按: 极氪起诉欣旺达这场官司,无论最终迎来怎样的判决,都注定会为整个行业留下一笔深刻的警示财富。...
逃缴1.09亿美元关税!深圳货... 可以说2025是税务大年,卖家不仅要扛住国内申报的节奏,还得适应一件更现实的事:跨境这门生意,账目和...
青岛榜样|奋战公益诉讼一线,诠... “说是检察官,其实我们更像户外工作者,经常跋山涉水、穿梭于田野乡间,哪里有公益受损和群众需求,哪里就...
双星新材(002585)披露市... 截至2025年12月29日收盘,双星新材(002585)报收于6.82元,较前一交易日上涨1.04%...