目录
声明和使用变量(go要求使用者声明的变量必须使用,否则会报错)
声明和使用变量(go要求使用者声明的变量必须使用,否则会报错)
声明变量
若要声明变量,需要使用 var
关键字:
var a int//声明一个int型的名为a的变量
var b,c string//声明两个类型相同的变量时,可在一行实现
同时,可以通过一个“块”来声明变量:
var(
a int
b,c string
)
初始化变量
在声明变量时,你可能需要为它们赋予初始值。方法大约有四种:
var (
firstName string = "John"
lastName string = "Doe"
age int = 32
)
在go语言中,你甚至可以不用指定类型,go会推断变量的类型:
var (
firstName = "John"
lastName = "Doe"
age = 32
)
这样将会得到与上一种方法相同的结果。
下面给出的这种方法在go语言中较为常用:
package main
import "fmt"
func main() {
firstName, lastName := "John", "Doe"
age := 32
fmt.Println(firstName, lastName, age)
请注意 import "fmt"
语句。 我们使用 import
关键字将包的内容引入范围中。 我们要导入“fmt”包,因此可以在代码中使用 Println
方法。 我们将在后面的文章中详细了解此关键字。
声明常量
有时,你需要在代码中加入静态值,这称为 常量。 Go 支持使用常量。 用于声明常量的关键字是 const
。
例如:
const A = 200
如果需要在一个块中声明多个常量,可以按如下所示执行:
const (
A = 0
B = 1
C = 2
)
常量和变量之间既有相似之处,也有一些重要差异。 例如,你可以在不使用常量的情况下声明常量。 你不会收到错误消息。 不能使用冒号等于号来声明常量。 如果采用这种方式,Go 会发出警告。
了解基本数据类型
整数数字
一般来说,定义整数类型的关键字是 int
。 但 Go 还提供了 int8
、int16
、int32
和 int64
类型,其大小分别为 8、16、32 或 64 位的整数。
使用 32 位操作系统时,如果只是使用 int
,则大小通常为 32 位。 在 64 位系统上,int
大小通常为 64 位。 但是,此行为可能因计算机而不同。 可以使用 uint
。 但是,只有在出于某种原因需要将值表示为无符号数字的情况下,才使用此类型。 此外,Go 还提供 uint8
、uint16
、uint32
和 uint64
类型。
在 Go 中将值从一种类型转换为另一种类型时,需要显式声明新类型。
可以通过查看 Go 源代码来了解每种类型的范围。 了解每种类型的范围可帮助你选择正确的数据类型,并且还可避免占用内存中的位。
浮点数字
Go 提供两种浮点数大小的数据类型:float32
和 float64
。 如果需要存储较大的数字,则可以使用这些类型,这些类型无法适应前面提到的任何一个整数类型。 这两种类型的区别是它们可以容纳的最大位数。
布尔型
布尔类型仅可能有两个值:true
和 false
。 你可以使用关键字 bool
声明布尔类型。
var featureFlag bool = true
Go 不同于其他编程语言,在 Go 中,你不能将布尔类型隐式转换为 0 或 1。 你必须显式执行此操作。
字符串
最后, 在 Go 中,关键字 string
用于表示字符串数据类型。 若要初始化字符串变量,你需要在双引号("
)中定义值。 单引号('
)用于单个字符。
有时,你需要对字符进行转义。 为此,在 Go 中,请在字符之前使用反斜杠 (\
)。 例如,下面是使用转义字符的最常见示例:
-
\n
:新行 -
\r
:回车符 -
\t
:选项卡 -
\'
:单引号 -
\"
:双引号 -
\\
:反斜杠
在 Go 中,如果你不对变量初始化,所有数据类型都有默认值。下面列出了我们目前浏览过类型的几个默认值:
-
int
类型的0
(及其所有子类型,如int64
) -
float32
和float64
类型的+0.000000e+000
-
bool
类型的false
-
string
类型的空值类型转换
与c语言类似:
var integer16 int16 = 127
var integer32 int32 = 32767
fmt.Println(int32(integer16) + integer32)