1. 整型
1.1 有符号整型
int
:根据系统架构,通常为32或64位int8
:8位有符号整型(范围:-128 到 127)int16
:16位有符号整型(范围:-32768 到 32767)int32
:32位有符号整型(范围:-2147483648 到 2147483647)int64
:64位有符号整型(范围:-9223372036854775808 到 9223372036854775807)
1.2 无符号整型
uint
:根据系统架构,通常为32或64位uint8
:8位无符号整型(范围:0 到 255)uint16
:16位无符号整型(范围:0 到 65535)uint32
:32位无符号整型(范围:0 到 4294967295)uint64
:64位无符号整型(范围:0 到 18446744073709551615)
1.3 特殊整型
byte
:等同于uint8
rune
:等同于int32
,表示一个Unicode码点
package main
import "fmt"
func main() {
var a int = 42
var b int8 = -128
var c uint16 = 65535
var d byte = 255
var e rune = '你' // Unicode码点
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
fmt.Println(d)
fmt.Println(e)
}
2. 浮点型
float32
:32位浮点数(IEEE-754标准)float64
:64位浮点数(IEEE-754标准)
package main
import "fmt"
func main() {
var f1 float32 = 3.14
var f2 float64 = 2.718281828
fmt.Println(f1)
fmt.Println(f2)
}
3. 复数类型
complex64
:实部和虚部都是float32
complex128
:实部和虚部都是float64
package main
import "fmt"
func main() {
var c1 complex64 = 1 + 2i
var c2 complex128 = 2 + 3i
fmt.Println(c1)
fmt.Println(c2)
}
4. 布尔型
布尔类型用于表示真值(true
)和假值(false
)。
package main
import "fmt"
func main() {
var isTrue bool = true
var isFalse bool = false
fmt.Println(isTrue)
fmt.Println(isFalse)
}
5. 字符串
字符串类型用于表示文本,由一串字符组成。
package main
import "fmt"
func main() {
var str1 string = "Hello, Go!"
var str2 string = `This is a raw string
literal which can span
multiple lines.`
fmt.Println(str1)
fmt.Println(str2)
}
字符串是不可变的,可以使用索引访问字符,但不能修改字符串内容。
package main
import "fmt"
func main() {
var str string = "Hello"
fmt.Println(str[1]) // 输出字符'e'的ASCII码
// str[1] = 'a' // 这是非法操作,因为字符串是不可变的
}
6. 类型转换
Go是强类型语言,类型转换需要显式进行。
package main
import "fmt"
func main() {
var i int = 42
var f float64 = float64(i)
var u uint = uint(f)
fmt.Println(i)
fmt.Println(f)
fmt.Println(u)
}
7. 常量
常量使用const
关键字声明。
package main
import "fmt"
const Pi = 3.14159
const Greeting = "Hello, World!"
func main() {
fmt.Println(Pi)
fmt.Println(Greeting)
}
常量可以是字符、字符串、布尔值或数值类型,且只能在编译时确定其值。
示例代码
以下是一个完整的示例,展示了各种基本数据类型的使用:
package main
import "fmt"
func main() {
// 整型
var i int = 42
var j int8 = -128
var k uint16 = 65535
// 浮点型
var f1 float32 = 3.14
var f2 float64 = 2.718281828
// 复数
var c1 complex64 = 1 + 2i
var c2 complex128 = 2 + 3i
// 布尔型
var b1 bool = true
var b2 bool = false
// 字符串
var s1 string = "Hello, Go!"
var s2 string = `This is a raw string
literal which can span
multiple lines.`
// 类型转换
var x int = 42
var y float64 = float64(x)
var z uint = uint(y)
// 常量
const Pi = 3.14159
const Greeting = "Hello, World!"
fmt.Println(i, j, k)
fmt.Println(f1, f2)
fmt.Println(c1, c2)
fmt.Println(b1, b2)
fmt.Println(s1)
fmt.Println(s2)
fmt.Println(x, y, z)
fmt.Println(Pi)
fmt.Println(Greeting)
}
版权声明:如无特殊说明,文章均为本站原创,转载请注明出处
本文链接:http://example.com/subject/article/89/
许可协议:署名-非商业性使用 4.0 国际许可协议