golang 基本类型和派生类型

2023-08-21 11:19:06 浏览数 (1)

在Go语言中,基本类型包括数字类型、布尔类型、字符串类型和错误类型。派生类型是基于基本类型或其他派生类型定义的类型,包括指针类型、数组类型、切片类型、字典类型、通道类型、结构体类型、接口类型和函数类型。

下面分别介绍一下这些类型:

  1. 数字类型:包括整数类型(int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64、uintptr)、浮点数类型(float32、float64)和复数类型(complex64、complex128)。
  2. 布尔类型:只有两个取值true和false,用于表示逻辑值。
  3. 字符串类型:用于表示文本字符串,底层为UTF-8编码。
  4. 错误类型:用于表示程序运行过程中可能出现的错误信息。
  5. 指针类型:指向其他变量的内存地址,可以用来间接访问变量的值。
  6. 数组类型:一组具有相同类型的数据元素的集合,长度固定。
  7. 切片类型:动态数组,可以根据需要进行扩展或收缩。
  8. 字典类型:无序的键值对集合。
  9. 通道类型:用于在goroutine之间传递数据的通信机制。
  10. 结构体类型:由一组具有不同类型的数据字段组成的自定义类型。
  11. 接口类型:定义了一组方法的集合,实现接口的类型必须实现这些方法。
  12. 函数类型:用于表示函数的类型,包括参数和返回值类型。

示例代码:

// 数字类型 var i int = 10 var f float64 = 3.14 var c complex64 = 1 2i

// 布尔类型 var b bool = true

// 字符串类型 var s string = "hello, world"

// 错误类型 err := errors.New("an error occurred")

// 指针类型 var ptr *int = &i

// 数组类型 var arr [3]int = [3]int{1, 2, 3}

// 切片类型 var slice []int = []int{1, 2, 3}

// 字典类型 var dict map[string]int = map[string]int{"one": 1, "two": 2, "three": 3}

// 通道类型 var ch chan int = make(chan int)

// 结构体类型 type person struct { name string age int } var p person = person{name: "Bob", age: 30}

// 接口类型 type MyInterface interface { Method1() Method2() }

// 函数类型 func add(a, b int) int { return a b } var f func(int, int) int = add

0 人点赞