0
我正在通過Go瀏覽工作,並在錯誤練習中提到在Error函數中調用Sprint(f)會導致出現問題,是一個無限循環。爲什麼發生這種情況在此說明:Error, infinite loopGo Tour練習:錯誤:使用%f的Sprintf來避免無限遞歸
我在第一次執行,雖然我用的sprintf與%F動詞:
func (e ErrNegativeSqrt) Error() string {
return fmt.Sprintf("cannot Sqrt negative number: %f", e)
}
這似乎在迴避這個問題,我想知道,這是因爲%F動詞是期待一個浮動,所以它迫使它把e看作一個浮動?旅遊提到assignment requires explicit conversion,但我認爲這不會影響這種情況?
還是我完全不了了之了,這裏還有其他的事情呢?
不'Sprintf'返回一個字符串,因此不受該問題? – masnun
Sprint也返回字符串 –
是的,沒錯。我的錯。 – masnun