Golang(Go語言)是一種靜態(tài)類型的編程語言,其數(shù)據(jù)類型豐富多樣,包括基本數(shù)據(jù)類型和復(fù)合數(shù)據(jù)類型。以下是對Golang語言數(shù)據(jù)類型的詳細(xì)歸納:
布爾型(Boolean):
bool
true
或 false
整型(Integer):
int8
、int16
、int32
、int64
和 int
(其大小依賴于系統(tǒng)架構(gòu),32位系統(tǒng)為32位,64位系統(tǒng)為64位)。uint8
(別名byte
)、uint16
、uint32
、uint64
和 uint
(同樣依賴于系統(tǒng)架構(gòu))。uintptr
,用于存放指針。浮點型(Float):
float32
和 float64
。float32
遵循IEEE 754標(biāo)準(zhǔn),占用4個字節(jié)。float64
同樣遵循IEEE 754標(biāo)準(zhǔn),占用8個字節(jié),是Go中的默認(rèn)浮點型。復(fù)數(shù)類型(Complex):
complex64
和 complex128
。complex64
由兩個float32
組成,用于表示復(fù)數(shù)。complex128
由兩個float64
組成,用于表示更精確的復(fù)數(shù)。字符串(String):
字符類型(Rune):
rune
類型(rune
是int32
的別名)來表示一個Unicode碼點。錯誤類型(Error):
error
接口,用于表示錯誤值。error
類型的值來報告錯誤。數(shù)組(Array):
切片(Slice):
映射(Map):
結(jié)構(gòu)體(Struct):
接口(Interface):
指針(Pointer):
函數(shù)(Function):
通道(Channel):
這些數(shù)據(jù)類型共同構(gòu)成了Go語言豐富的數(shù)據(jù)表示能力,使得Go語言在處理各種編程任務(wù)時都能夠游刃有余。
以下是一個包含多種Golang(Go語言)數(shù)據(jù)類型的示例代碼。這個示例將展示如何聲明和使用基本數(shù)據(jù)類型(整型、浮點型、布爾型、字符串)、復(fù)合數(shù)據(jù)類型(數(shù)組、切片、映射、結(jié)構(gòu)體)以及函數(shù)。
package main
import "fmt"
// 定義一個結(jié)構(gòu)體
type Person struct {
Name string
Age int
IsAlive bool
}
// 定義一個函數(shù),返回兩個整數(shù)的和
func add(a, b int) int {
return a + b
}
func main() {
// 基本數(shù)據(jù)類型示例
var intVar int = 42
var floatVar float64 = 3.14
var boolVar bool = true
var stringVar string = "Hello, Go!"
fmt.Println("Int:", intVar)
fmt.Println("Float:", floatVar)
fmt.Println("Bool:", boolVar)
fmt.Println("String:", stringVar)
// 數(shù)組示例
var arr [5]int
arr[0] = 1
arr[1] = 2
fmt.Println("Array:", arr)
// 切片示例
slice := []int{3, 4, 5}
fmt.Println("Slice:", slice)
// 映射示例
mapVar := make(map[string]int)
mapVar["one"] = 1
mapVar["two"] = 2
fmt.Println("Map:", mapVar)
// 結(jié)構(gòu)體示例
person := Person{
Name: "Alice",
Age: 30,
IsAlive: true,
}
fmt.Println("Person:", person)
// 函數(shù)調(diào)用示例
sum := add(5, 7)
fmt.Println("Sum:", sum)
// 切片和函數(shù)結(jié)合使用示例
numbers := []int{1, 2, 3, 4, 5}
sumOfNumbers := 0
for _, num := range numbers {
sumOfNumbers += num
}
fmt.Println("Sum of numbers:", sumOfNumbers)
// 映射和結(jié)構(gòu)體結(jié)合使用示例
people := make(map[string]Person)
people["Alice"] = person
people["Bob"] = Person{Name: "Bob", Age: 25, IsAlive: true}
fmt.Println("People:", people)
}
在這個示例中,我們首先定義了一個Person
結(jié)構(gòu)體,它有三個字段:Name
(字符串類型)、Age
(整型)和IsAlive
(布爾型)。然后,我們定義了一個add
函數(shù),它接受兩個整型參數(shù)并返回它們的和。
在main
函數(shù)中,我們演示了如何聲明和使用基本數(shù)據(jù)類型(整型、浮點型、布爾型、字符串)、數(shù)組、切片、映射和結(jié)構(gòu)體。我們還展示了如何調(diào)用函數(shù),并將切片和映射與結(jié)構(gòu)體結(jié)合使用來存儲更復(fù)雜的數(shù)據(jù)。
請注意,這個示例中的mapVar
和people
映射都使用了make
函數(shù)來初始化,這是因為映射是引用類型,需要在使用前進(jìn)行初始化。對于切片,我們既可以直接使用字面量初始化(如slice := []int{3, 4, 5}
),也可以使用make
函數(shù)(盡管對于切片來說這不是必需的,但在某些情況下很有用)。
上一篇: Golang 語言基礎(chǔ)語法
下一篇: Golang 語言變量