GO语言的变量类型:
GO语言是一门强类型语言,每一个变量都有它自己的变量类型。
一、 1.常见数据类型
| 类型 | 描述 |
|---|---|
| string | 字符串 |
| int | 整数 |
| float | 浮点数 |
| BOOL | 布尔类型 |
- 1.1 字符串: GO语言的字符串是内置类型,可以直接通过加号拼接,也能够直接用等于号去比较两个字符串.
- 1.2 整数: Go语言中,整数类型可以是有符号(可以表示正数、负数或零)或无符号(只能表示非负数或零)。根据所使用的位数,有不同范围的整数类型.
- 1.3 浮点数: 浮点数通常用于表示非整数和可能具有较大或较小范围的数值。* 在Go语言中,有两种浮点数类型:float32和float64。其中,float32是单精度浮点数,而float64是双精度浮点数。双精度浮点数提供更高的精度和范围,但会占用更多的内存。
- 1.4 布尔类型:布尔数是真(true)或假(false)的逻辑值。布尔数常用于控制流程、条件判断和逻辑运算。在Go语言中,布尔类型只有两个取值:true和false。布尔类型在条件语句和布尔表达式中起到关键作用。
***PS:在GO语言中,大部分运算符的使用和优先级都和 C 或者 C++ 类似。当遇到特殊情况时会说明的
package main
import (
"fmt"
"math"
)
func main() {
var a = "initial"
var b, c int = 1, 2
var d = true
var e float64
f := float32(e)
g := a + "foo"
fmt.Println(a, b, c, d, e, f) // initial 1 2 true 0 0
fmt.Println(g) // initialapple
const s string = "constant"
const h = 500000000
const i = 3e20 / h
fmt.Println(s, h, i, math.Sin(h), math.Sin(i))
}
2. 变量的声明:
- 在GO语言中,可以使用关键字
var来声明变量。变量声明的一般语法如下: - 第一种办法:通过
var name string =这种方式来声明变量,声明变量的时候, 般会自动去推导变量的类型。如果有需要,你也可以显示写出变量类型。 - 第二种办法(短变量声明):另一种声明变量的方式是: 使用变量冒号
:=等干值常量的话就是把 var 改成const,值得一提的是go语言里面的常量,它没有确定的类型,会根据使用的上下文来自动确定类型.
二、 常量:
常量的话就是把var改成const,值得一提的是GO语言里面的常量,它没有确定的类型,会根据使用的上下文来自动确定类型.
PS:已声明的变量必须在使用之前赋予一个值,否则将会使用其类型的默认值进行初始化。
三、使用变量的注意事项:
-
声明与初始化:在使用变量之前,必须先声明和初始化它。可以使用var关键字声明变量,也可以使用:=短声明来同时进行声明和初始化。
-
变量的作用域:变量的作用域决定了变量的可见性和生命周期。在函数内部声明的变量只在函数内部有效,而在函数外部声明的变量则可以在整个包内使用。
-
类型推断:Go语言是静态类型语言,在声明变量时必须指定变量的类型。但是,当使用:=短声明语法时,编译器会根据右侧表达式的类型自动推断出变量的类型。
-
零值初始化:在声明变量时,如果没有显式地给变量赋初值,那么变量将被赋予其对应类型的零值。例如,int类型的零值是0,string类型的零值是空字符串。
5.值类型与引用类型:Go语言中的变量有值类型和引用类型两种。值类型的变量直接存储数据的值,而引用类型的变量存储的是数据的地址。值类型在赋值和传递时会进行复制,而引用类型在赋值和传递时会共享底层数据。
-
变量命名:Go语言中的变量命名应该具有可读性,使用驼峰命名法,并且应该尽量避免使用单个字母作为变量名,以提高代码的可维护性。
-
作用域限定:如果在函数内部存在与全局变量同名的局部变量,则在函数内部使用该变量时,将优先使用局部变量。可以使用全局变量的完全限定名来访问全局变量。