2 回答

TA貢獻1821條經(jīng)驗 獲得超5個贊
strings.NewReplacer("#", "o")
返回指針*strings.Replacer
。所以這條線應(yīng)該是
var replacer *strings.Replacer = strings.NewReplacer("#", "o")
鏈接到工作程序: https: //play.golang.org/p/h1LOC-OUoJ2

TA貢獻1794條經(jīng)驗 獲得超8個贊
的定義strings.NewReplacer
是func NewReplacer(oldnew ...string) *Replacer
。因此該函數(shù)返回一個指向Replacer的指針(有關(guān)指針的更多信息,請參見教程)。
在語句中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
為您確定類型 ( )。
- 2 回答
- 0 關(guān)注
- 132 瀏覽
添加回答
舉報