Golang Go语言中有哪些数据类型?

发布于 1周前 作者 songsunli 最后一次编辑是 5天前 来自 问答

Golang Go语言中有哪些数据类型?

Golang中可以使用的数据类型如下: Method Bool String Array Slice Struct Pointer Function l Interface l Map Channel

1 回复

在Go语言(通常称为Golang)中,数据类型用于定义变量的类型,它们决定了变量可以存储什么类型的数据以及可以对其执行哪些操作。Go语言提供了丰富的数据类型,主要包括以下几种:

1. 基本数据类型

  • 布尔型(Boolean):表示真或假,使用bool关键字声明。

    var isDone bool = true
    
  • 整型(Integer):分为多种,如intint8int16int32int64uintuint8(即byte)、uint16uint32uint64等,用于存储整数。

    var num int = 42
    var smallNum int8 = -128
    
  • 浮点型(Float):用于存储小数,分为float32float64

    var pi float64 = 3.14
    
  • 复数(Complex):由实部和虚部组成,分为complex64complex128

    var c complex128 = complex(3, 4)
    
  • 字符串(String):用于存储文本数据,使用双引号或反引号定义。

    var greeting string = "Hello, World!"
    

2. 复合数据类型

  • 数组(Array):固定长度的序列,其元素类型相同。

    var arr [5]int = [5]int{1, 2, 3, 4, 5}
    
  • 切片(Slice):动态数组,是对数组的抽象,长度不固定。

    var s []int = []int{1, 2, 3}
    
  • 映射(Map):无序的键值对集合,键的类型和值的类型可以是不同的。

    var m map[string]int = make(map[string]int)
    m["one"] = 1
    
  • 结构体(Struct):自定义的复合数据类型,可以包含多个不同类型的字段。

    type Person struct {
        Name string
        Age  int
    }
    var p Person = Person{"Alice", 30}
    
  • 接口(Interface):一种类型,它定义了一组方法,但不实现它们(由其他类型实现)。

    type Shape interface {
        Area() float64
    }
    
  • 通道(Channel):用于在不同的goroutine之间同步执行和通信。

    ch := make(chan int)
    go func() { ch <- 42 }()
    

3. 特殊类型

  • 函数类型:函数也是一种类型,可以赋值给变量。

    var sum = func(a, b int) int { return a + b }
    
  • 空类型(nil):表示零值或空值,用于指针、切片、映射、通道、函数、接口和数组的默认零值。

Go语言通过这些丰富的数据类型,提供了强大的表达能力,使得开发者能够高效地编写清晰、可维护的代码。

回到顶部