首頁  >  文章  >  後端開發  >  golang 類型有哪些

golang 類型有哪些

王林
王林原創
2023-05-10 10:56:071096瀏覽

Go是一門靜態類型的程式語言,支援包括常用的基本類型、結構體、陣列和切片、映射、介面以及函數等多種類型。以下是一些常用的Go語言類型:

  1. 基本類型

Go語言支援標準的基本類型,例如布林型、整數、浮點型、字串和字元型。

  • 布林型:bool型,只有布林值true和false。
  • 整數型:int、int8、int16、int32、int64、uint、uint8、uint16、uint32和uint64,分別表示有符號整數和無符號整數,大小分別為8、16、32和64位。
  • 浮點型態:float32和float64,分別表示32位元和64位元浮點數。
  • 字元型:rune類型,它是Unicode字元的一個編碼。
  1. 結構體

Go語言中的結構體是一種使用者定義的複合類型,可以包含多個不同類型的欄位。可以使用結構體來表示一些複雜的資料類型。結構體中的欄位可以是任何類型,包括其他結構體類型。

例如:

type Person struct {
    Name   string
    Age    int
    Height float32
}
  1. 陣列與切片

陣列在Go語言中也是一種基本型別。數組有固定的大小,定義時需要指定數組的長度。切片是對數組的一個引用,動態地分配空間,可以隨時增加或縮小。可以使用內建函數 len() 來取得切片的長度。

例如:

var array [3]int // 定义一个长度为3的数组
slice := []int{1, 2, 3, 4, 5} // 定义一个切片
  1. 映射

映射是一種鍵值對的資料結構,類似於其他語言中的字典或雜湊表。在Go語言中,映射使用內建的 map 類型表示。可以使用 make() 函數來建立一個映射,然後使用 [] 運算元來存取映射中的元素。

例如:

scores := make(map[string]int) // 创建一个名为scores的映射
scores["Alice"] = 85 // 添加一个键值对
  1. 介面

介面是一種抽象的資料類型,可以定義一組方法,不需要實作特定的程式碼。在實作介面的類型中,需要實作介面中定義的所有方法。介面可以使程式碼更加靈活、可擴展和可維護。

例如:

type Shape interface {
    Area() float64
    Perimeter() float64
}

type Rectangle struct {
    Width  float64
    Height float64
}

func (r Rectangle) Area() float64 {
    return r.Width * r.Height
}

func (r Rectangle) Perimeter() float64 {
    return 2 * (r.Width + r.Height)
}
  1. 函數型別

函數是Go語言中的一等公民,它們可以像其他類型一樣被傳遞、賦值和返回。在Go語言中,函數也是一種類型,可以定義函數類型作為參數或傳回值。

例如:

type Operation func(int, int) int

func Add(a, b int) int {
    return a + b
}

func Sub(a, b int) int {
    return a - b
}

func calc(op Operation, a, b int) int {
    return op(a, b)
}

sum := calc(Add, 10, 20) // 调用calc函数,传入Add函数作为参数
diff := calc(Sub, 30, 15) // 调用calc函数,传入Sub函数作为参数

以上是常用的一些Go語言類型,Go語言也支援其他類型,如通道(channel)、指標(pointer)等。掌握這些類型對於編寫高品質、可讀性較好的Go程式碼是非常重要的。

以上是golang 類型有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:golang安裝設定下一篇:golang安裝設定