2 回答

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個贊
您可以返回您的浮點(diǎn)值和一個 int(作為迭代次數(shù))。我對您的示例進(jìn)行了非常小的修改以進(jìn)行演示。
func sqrt(x float64) (float64, int) {
z := 1.0
i := 1
q := (z*z - x) / (2 * z)
for {
if math.Abs(-q) > 0.01 {
i++
z -= q
q = (z*z - x) / (2 * z)
} else {
break
}
}
return z, i
}
func main() {
f, i := sqrt(9)
fmt.Printf("result: %f iterations: %d\n", f, i)
fmt.Println(math.Sqrt(9))
}

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個贊
您可以通過函數(shù)提供多個返回值:
func main() {
numLoops, newNum := sqrt(9)
}
func sqrt(x float64) (int, float64) {
<implementation>
}
GoPlay 在這里: https: //play.golang.org/p/R2lV41EbEd
- 2 回答
- 0 關(guān)注
- 214 瀏覽
添加回答
舉報