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

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

不能在賦值中使用 strings.NewReplacer("#", "o")

不能在賦值中使用 strings.NewReplacer("#", "o")

Go
蕭十郎 2022-10-10 15:50:37
我正在從“Head First Go”學習 Go 語言,并在第 2 章遇到了一個示例package mainimport (    "fmt"    "strings")func main(){    var broken string = "Go# R#cks!"        //**Below line doesn't work, getting error as shown after the program :**-     var replacer strings.Replacer = strings.NewReplacer("#", "o")        // Whereas this line works perfectly    replacer := strings.NewReplacer("#", "o")        var fixed string = replacer.Replace(broken)    fmt.Println(replacer.Replace(fixed))}命令行參數 ./hello.go:10:6: 不能使用 strings.NewReplacer("#", "o") (type *strings.Replacer) 作為類型 strings.Replacer 賦值
查看完整描述

2 回答

?
收到一只叮咚

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

strings.NewReplacer("#", "o")返回指針*strings.Replacer。所以這條線應該是

var replacer *strings.Replacer = strings.NewReplacer("#", "o")

鏈接到工作程序: https: //play.golang.org/p/h1LOC-OUoJ2


查看完整回答
反對 回復 2022-10-10
?
慕田峪9158850

TA貢獻1794條經驗 獲得超7個贊

的定義strings.NewReplacerfunc NewReplacer(oldnew ...string) *Replacer。因此該函數返回一個指向Replacer指針(有關指針的更多信息,請參見教程)。

在語句中var replacer strings.Replacer = strings.NewReplacer("#", "o"),您正在定義一個具有類型的變量,strings.Replacer然后嘗試為其分配一個類型的值*strings.Replacer。由于這是兩種不同的類型,編譯器會報告錯誤。解決方法是使用正確的類型var replacer *strings.Replacer = strings.NewReplacer("#", "o")playground)。

replacer := strings.NewReplacer("#", "o")工作正常,因為當使用短變量聲明時,編譯器會*strings.Replacer為您確定類型 ( )。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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