Go语言介绍(五)--Go数据类型

目录

1. 基本类型

1.1 整型

1.2 浮点型

1.3 复数类型

1.4 字符串类型

1.5 布尔类型

2. 字符类型

3. 复合类型

3.1 数组

3.2 切片

3.3 映射(Map)

3.4 结构体

4. 引用类型

4.1 指针

4.2 通道(Channel)

5. 其他类型

5.1 接口(Interface)

5.2 空接口(Empty Interface)

总结


 

Go 语言(Golang)支持多种数据类型,这些类型大致可以分为几大类:基本类型、复合类型、引用类型以及其他一些特殊类型。下面详细介绍这些类型:

1. 基本类型

1.1 整型

整型包括有符号和无符号两种类型。

  • 有符号整型int8int16int32int64int(默认为机器字长,通常是 32 位或 64 位)
  • 无符号整型uint8(也写作 byte)、uint16uint32uint64uint(默认为机器字长,通常是 32 位或 64 位)

示例:

 

go

深色版本

1var i8 int8 = -128
2var u8 uint8 = 255

1.2 浮点型

浮点型用于表示带小数点的数值。

  • float32
  • float64

示例:

 

go

深色版本

1var f32 float32 = 3.14
2var f64 float64 = 3.141592653589793

1.3 复数类型

复数类型用于表示复数。

  • complex64
  • complex128

示例:

 

go

深色版本

1var c64 complex64 = 3 + 4i
2var c128 complex128 = 3.14 + 4.56i

1.4 字符串类型

字符串类型用于存储文本信息。

  • string

示例:

 

go

深色版本

1var str string = "Hello, world!"

1.5 布尔类型

布尔类型用于表示逻辑值。

  • bool

示例:

 

go

深色版本

1var trueVal bool = true
2var falseVal bool = false

2. 字符类型

字符类型用于存储单个字符。

  • rune(等同于 int32,用于 Unicode 字符)
  • byte(等同于 uint8,通常用于 ASCII 字符)

示例:

 

go

深色版本

1var runeVal rune = '我'
2var byteVal byte = 'A'

3. 复合类型

复合类型是将多个元素组合成一个单一的值。

3.1 数组

数组是一种固定大小的序列类型。

示例:

 

go

深色版本

1var numbers [5]int = [5]int{1, 2, 3, 4, 5}

3.2 切片

切片是一种动态大小的序列类型。

示例:

 

go

深色版本

1var slice []int = []int{1, 2, 3, 4, 5}

3.3 映射(Map)

映射是一种键值对集合类型。

示例:

 

go

深色版本

1var mapVal map[string]int = map[string]int{"one": 1, "two": 2}

3.4 结构体

结构体是一种用户自定义的复合类型,用于组合不同类型的字段。

示例:

 

go

深色版本

1type person struct {
2    Name string
3    Age  int
4}
5
6var p person = person{Name: "Alice", Age: 30}

4. 引用类型

引用类型是指向其他值的类型。

4.1 指针

指针用于存储另一个变量的内存地址。

示例:

 

go

深色版本

1var a int = 10
2var pa *int = &a

4.2 通道(Channel)

通道用于在 goroutines 之间传递消息。

示例:

 

go

深色版本

1ch := make(chan int)
2ch <- 42 // 发送数据
3fmt.Println(<-ch) // 接收数据

5. 其他类型

5.1 接口(Interface)

接口定义了一组方法签名,任何实现了这些方法的类型都可以满足该接口。

示例:

 

go

深色版本

1type Greeter interface {
2    Greet() string
3}
4
5type Person struct {
6    Name string
7}
8
9func (p Person) Greet() string {
10    return "Hello, " + p.Name
11}
12
13func main() {
14    var g Greeter = Person{Name: "Alice"}
15    fmt.Println(g.Greet())
16}

5.2 空接口(Empty Interface)

空接口可以接受任何类型。

示例:

 

go

深色版本

1var anyVar interface{} = "Hello"
2fmt.Println(anyVar)

总结

以上是 Go 语言中常见的数据类型及其基本使用方法。通过这些类型,可以构建出复杂的数据结构和逻辑,从而实现各种功能。每一种类型都有其特定的用途,理解它们的特性和使用场景对于编写高效、可维护的 Go 代码非常重要。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值