亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

是否可以在 Go 中傳遞字符串指針并使其成為字符串切片?

是否可以在 Go 中傳遞字符串指針并使其成為字符串切片?

Go
MMMHUHU 2022-06-13 10:18:05
所以基本上我想知道在 GO 中是否可能,因為我在玩Dereference。例如在下面顯示的代碼中。指針被傳遞給函數,我試圖返回傳遞的指針字符串的一個字母,在給定的示例中是 H,但是slice只能與字符串一起使用。我想知道是否可以使用指針取消引用來做到這一點。代碼示例:func Test(test *string) {    if len(*test) > 0 {        *test = *test[:1]    }    strings.ToUpper(*test)}func main() {  str := "hello"    Test(&str)  fmt.Print( str)}
查看完整描述

2 回答

?
達令說

TA貢獻1821條經驗 獲得超6個贊

您需要放在test括號中,即首先取消引用指針,然后對其進行切片。


然后該Test函數仍然不會返回大寫H,因為ToUpper接受并返回一個值。因此,您還需要重新分配 to 的ToUpper輸出*test:


func Test(test *string) {

    if len(*test) > 0 {

        *test = (*test)[:1] // bracketed `test`

    }

    *test = strings.ToUpper(*test) // reassign to `test`

}


func main() {

  str := "hello"

    Test(&str)

  fmt.Print(str) // Prints 'H'

}


查看完整回答
反對 回復 2022-06-13
?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

是否可以在 Go 中傳遞字符串指針并使其成為字符串切片?

是的:func (ps *string) []string { return []string{*ps} }


查看完整回答
反對 回復 2022-06-13
  • 2 回答
  • 0 關注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號