Skip to content

Instantly share code, notes, and snippets.

@brianjester
Last active October 8, 2017 23:06
Show Gist options
  • Save brianjester/ab2fa937147bc85abdfb32891f1d3308 to your computer and use it in GitHub Desktop.
Save brianjester/ab2fa937147bc85abdfb32891f1d3308 to your computer and use it in GitHub Desktop.
A Tour of Go - Methods and Interfaces - Exercise: Errors (20/26)
package main
import (
"fmt"
)
type ErrNegativeSqrt float64
func (e ErrNegativeSqrt) Error() string {
return fmt.Sprintf("cannot Sqrt negative number: %v",float64(e))
}
func Sqrt(x float64) (float64, error) {
if x < 0 {
return 0,ErrNegativeSqrt(x)
}
result := 1.0
for count := 0 ;count < 10;count++ {
result = result - ((result*result - x)/(2*result))
//fmt.Println(x)
}
return result, nil
}
func main() {
fmt.Println(Sqrt(2))
fmt.Println(Sqrt(-2))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment