Last active
March 18, 2022 05:19
-
-
Save nobeans/f26a961c91d8fba7ea81765ad9922289 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"errors" | |
"fmt" | |
"os" | |
) | |
func main() { | |
test1() | |
fmt.Println("-------------------") | |
test2() | |
} | |
func test1() { | |
err := errors.New("HOGE") | |
fmt.Println(err) //=> "HOGE" | |
// ifスコープで := した場合は、errが(再?)定義できるし、外のerrは上書きされない。 | |
if _, err := fmt.Fprintln(os.Stdout, "FOO"); true { //=> "FOO" | |
fmt.Println(err) //=> "<nil>" | |
} | |
fmt.Println(err) //=> "HOGE" | |
// ifスコープで = した場合は、外のerrが上書きされる。 | |
if _, err = fmt.Fprintln(os.Stdout, "BAR"); true { //=> "BAR" | |
fmt.Println(err) //=> "<nil>" | |
} | |
fmt.Println(err) //=> "<nil>" | |
} | |
func test2() { | |
err := errors.New("HOGE") | |
fmt.Println(err) //=> "HOGE" | |
// 同じスコープで := でerrの再定義はできない。(コンパイルエラー) | |
//_, err := fmt.Fprintln(os.Stdout, "BAZ") | |
//fmt.Println(err) | |
// 同じスコープで = でerrを使うと、当然上書きされる。 | |
_, err = fmt.Fprintln(os.Stdout, "BAZ") //=> "BAZ" | |
fmt.Println(err) //=> "<nil>" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment