3 回答
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
byte是數(shù)值類(lèi)型,實(shí)際上是.的別名uint8。
這意味著它的默認(rèn)零值為0。
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
對(duì)于慣用的 Go,將您的函數(shù)編寫(xiě)為:
package main
import (
? ? "fmt"
)
type TreeNode struct {
? ? payload? byte
? ? parent? ?*TreeNode
? ? children map[byte]*TreeNode
}
func createEmptyTree(fileName string) *TreeNode {
? ? return &TreeNode{
? ? ? ? children: map[byte]*TreeNode{},
? ? }
}
func main() {
? ? tree := createEmptyTree("fiename")
? ? fmt.Println(tree)
}
游樂(lè)場(chǎng):https://play.golang.org/p/v6DJCnpN6Ys
輸出:
&{0?<nil>?map[]}payload空樹(shù)的值為整數(shù)零 (?)?0,整數(shù)類(lèi)型 的零值byte。零不是英文字母表中的單個(gè)小寫(xiě)字母值。
Go 編程語(yǔ)言規(guī)范
零值
當(dāng)通過(guò)聲明或調(diào)用 new 為變量分配存儲(chǔ)空間時(shí),或者通過(guò)復(fù)合文字或調(diào)用 make 創(chuàng)建新值時(shí),并且沒(méi)有提供顯式初始化,則給出變量或值一個(gè)默認(rèn)值。此類(lèi)變量或值的每個(gè)元素都設(shè)置為其類(lèi)型的零值:布爾值為 false,數(shù)字類(lèi)型為 0,字符串為 "",指針、函數(shù)、接口、切片、通道和映射為 nil。
TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊
golang 中的每種類(lèi)型都有一個(gè)零值。在這種情況下byte是空字節(jié)。
完全有可能只使用空字節(jié)作為根部的神奇零有效負(fù)載。
- 3 回答
- 0 關(guān)注
- 225 瀏覽
添加回答
舉報(bào)
