package main
import (
"fmt"
"io"
"strings"
)
func main() {
r := f1(-1)
if r == nil {
fmt.Println("r error")
} else {
r.Read([]byte("")) // panic: runtime error: invalid memory address or nil pointer dereference
}
}
func f1(n int) io.Reader {
var r *strings.Reader = nil
if n > 0 {
r = &strings.Reader{}
}
return r
}
// 正確寫法 應該返回 nil
func f2(n int) io.Reader {
if n > 0 {
return &strings.Reader{}
}
return nil
}
GO 空指標和nil
相關文章
- Go“一個包含nil指標的介面不是nil介面”踩坑Go指標
- 野指標 空指標指標
- Go 語言 nil 和介面Go
- GO 指標Go指標
- golang nil 切片和空切片區別Golang
- 防止空指標指標
- Go 語言指標符號 *和&Go指標符號
- Go 介面:nil介面為什麼不等於nil?Go
- Go 陣列指標(指向陣列的指標)Go陣列指標
- Go 語言中,有時 nil 並不是一個 nilGo
- 又見懸空指標指標
- GO語言————4.9、指標Go指標
- 指標常量和常量指標指標
- go 方法接受者 是指標型別和非指標型別的 區別Go指標型別
- 如何避免空指標出錯?指標
- 8.空指標異常指標
- easyexcel字型空指標錯誤Excel指標
- go 語言指標學習Go指標
- GO切片傳值/引用/指標Go指標
- 兄弟連go教程(6)指標Go指標
- Go指標複製問題Go指標
- 關於指標傳遞和指標的指標指標
- 詳解 常量指標和指標常量指標
- 陣列指標和指標陣列陣列指標
- 指標函式 和 函式指標指標函式
- C語言指標(三):陣列指標和字串指標C語言指標陣列字串
- NullPointerException空指標異常的理解NullException指標
- GO 指標*&問題疑問Go指標
- 指標和常量指標
- Go語言什麼時候該使用指標 與 指標使用分析Go指標
- Java中如何避免空指標異常Java指標
- springboot整合redis,redisTemplate 空指標Spring BootRedis指標
- 指向常量資料的指標和常量指標指標
- Objective-c nil, Nil, NULL和NSNull的區別ObjectNull
- 陣列和指標陣列指標
- 指標和陣列指標陣列
- 1.0 - 指標和引用指標
- 指向const物件的指標 和 const指標物件指標