Merge commit 'fbec4b58cf566f7c4ba5cd6f9fb674201d642a90' into ja

This commit is contained in:
Shin Kojima
2014-12-17 01:16:47 +09:00

View File

@@ -15,7 +15,7 @@ Similar to the `os.Open` function, the functions in Go's standard packages all r
## Error type
`error` is an interface type, with this definition:
`error` is an interface type with the following definition:
type error interface {
Error() string
@@ -23,6 +23,10 @@ Similar to the `os.Open` function, the functions in Go's standard packages all r
`error` is a built-in interface type, we can / builtin / pack below to find the appropriate definition. And we have a lot of internal error is used inside the package packet errors following implementation structure errorString private
`error` is a built-in interface type. We can find the corresponding definition in the builtin package below. We also have a lot of internal packages using the error in a private structure called `errorString`, which implements the error interface:
// errorString is a trivial implementation of error.
type errorString struct {
s string
@@ -32,7 +36,7 @@ Similar to the `os.Open` function, the functions in Go's standard packages all r
return e.s
}
You can `errors.New` put a string into errorString, in order to get a meet the interface error object whose internal implementation is as follows:
You can convert a regular string to an `errorString` through `errors.New` in order to get an object that satisfies the error interface. Its internal implementation is as follows:
// New returns an error that formats as the given text.
func New(text string) error {
@@ -48,7 +52,7 @@ The following example demonstrates how to use `errors.New`:
// implementation
}
In the following example, we call the Sqrt when passing a negative number , and then you get the error object is non-nil , nil compared with this object , the result is true, so `fmt.Println` (fmt package when dealing with error calls the error method ) is called to output error , look at the following sample code to call :
In the following example, we pass a negative number to our `Sqrt` function. Checking the `err` variable, we check whether the error object is non-nil using a simple nil comparison. The result of the comparison is true, so `fmt.Println` (the `fmt` package calls the error method when dealing with error calls) is called to output an error.
f, err := Sqrt(-1)
if err != nil {