第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go 中的字節(jié)是否可以使用 nil 值?

Go 中的字節(jié)是否可以使用 nil 值?

Go
函數(shù)式編程 2023-05-22 17:39:45
我正在 Go 中實現(xiàn)一棵樹。我的 TreeNode 結(jié)構(gòu)如下所示:type TreeNode struct {    payload byte    parent *TreeNode    children map[byte]*TreeNode}在我的實現(xiàn)中,樹的根節(jié)點是一個沒有負載的特殊節(jié)點。否則有效負載始終是英文字母表中的單個小寫字母。所以我的樹初始化函數(shù)如下所示:func createEmptyTree(fileName string) *TreeNode{    return &TreeNode{        nil,           // Line #180        nil,        false,        map[byte]*TreeNode{},    }}但是,當我編譯它時,出現(xiàn)以下錯誤:./main.go:180:9: cannot use nil as type byte in field value所以看來我不能用于nil字節(jié)變量。在這種情況下我還有什么可以使用的嗎?我可以輕松使用'0'或其他非字母字符。但這似乎很老套。我應(yīng)該怎么辦?
查看完整描述

3 回答

?
肥皂起泡泡

TA貢獻1829條經(jīng)驗 獲得超6個贊

byte是數(shù)值類型,實際上是.的別名uint8。

這意味著它的默認零值為0。


查看完整回答
反對 回復(fù) 2023-05-22
?
幕布斯6054654

TA貢獻1876條經(jīng)驗 獲得超7個贊

對于慣用的 Go,將您的函數(shù)編寫為:


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)

}

游樂場:https://play.golang.org/p/v6DJCnpN6Ys

輸出:

&{0?<nil>?map[]}

payload空樹的值為整數(shù)零 (?)?0,整數(shù)類型 的零值byte。零不是英文字母表中的單個小寫字母值。


Go 編程語言規(guī)范

零值

當通過聲明或調(diào)用 new 為變量分配存儲空間時,或者通過復(fù)合文字或調(diào)用 make 創(chuàng)建新值時,并且沒有提供顯式初始化,則給出變量或值一個默認值。此類變量或值的每個元素都設(shè)置為其類型的零值:布爾值為 false,數(shù)字類型為 0,字符串為 "",指針、函數(shù)、接口、切片、通道和映射為 nil。


查看完整回答
反對 回復(fù) 2023-05-22
?
守著一只汪

TA貢獻1872條經(jīng)驗 獲得超4個贊

golang 中的每種類型都有一個零值。在這種情況下byte是空字節(jié)。

完全有可能只使用空字節(jié)作為根部的神奇零有效負載。


查看完整回答
反對 回復(fù) 2023-05-22
  • 3 回答
  • 0 關(guān)注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號