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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何檢查切片頭?

如何檢查切片頭?

Go
蕭十郎 2023-06-01 15:14:10
這是來(lái)自切片的略微修改的代碼var buffer [256] bytefunc SubtractOneFromLength(slice []byte) []byte {? ? slice = slice[0 : len(slice)-1]? ? return slice}func main() {? ? slice := buffer[10:20]? ? fmt.Println("Before: len(slice) =", len(slice))? ? newSlice := SubtractOneFromLength(slice)? ? fmt.Println("After:? len(slice) =", len(slice))? ? fmt.Println("After:? len(newSlice) =", len(newSlice))? ? newSlice2 := SubtractOneFromLength(newSlice)? ? fmt.Println("After:? len(newSlice2) =", len(newSlice2))}它說切片參數(shù)的內(nèi)容可以被函數(shù)修改,但它的頭不能。如何在我的屏幕上打印 newSlice2 的標(biāo)題?
查看完整描述

1 回答

?
鳳凰求蠱

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊

切片頭由以下類型表示reflect.SliceHeader

type?SliceHeader?struct?{
????????Data?uintptr
????????Len??int
????????Cap??int}

您可以使用 packageunsafe將切片指針轉(zhuǎn)換為*reflect.SliceHeader如下所示:

sh?:=?(*reflect.SliceHeader)(unsafe.Pointer(&newSlice2))

然后你可以像任何其他結(jié)構(gòu)一樣打印它:

fmt.Printf("%+v",?sh)

輸出將是(在Go Playground上嘗試):

&{Data:1792106?Len:8?Cap:246}

unsafe另請(qǐng)注意,您可以在不使用 package and 的情況下訪問存儲(chǔ)在切片標(biāo)頭中的信息reflect

  • 要獲得該Data字段,您可以使用&newSlice2[0]

  • 要獲取Len字段,請(qǐng)使用len(newSlice2)

  • 要獲取Cap字段,請(qǐng)使用cap(newSlice2)

查看完整回答
反對(duì) 回復(fù) 2023-06-01
  • 1 回答
  • 0 關(guān)注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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