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
- golang nil 切片和空切片區別Golang
- GO 指標Go指標
- 防止空指標指標
- Go 語言指標符號 *和&Go指標符號
- Go 介面:nil介面為什麼不等於nil?Go
- Go 語言中,有時 nil 並不是一個 nilGo
- 空指標的傳說指標
- 「程式設計師面試」一文搞懂野指標、懸空指標、空指標和記憶體洩漏,附程式碼示例!程式設計師面試指標記憶體
- Go 陣列指標(指向陣列的指標)Go陣列指標
- 如何避免空指標出錯?指標
- springboot整合redis,redisTemplate 空指標Spring BootRedis指標
- easyexcel字型空指標錯誤Excel指標
- GO語言————4.9、指標Go指標
- go 方法接受者 是指標型別和非指標型別的 區別Go指標型別
- NullPointerException空指標異常的理解NullException指標
- 兄弟連go教程(6)指標Go指標
- go 語言指標學習Go指標
- GO切片傳值/引用/指標Go指標
- 指標函式 和 函式指標指標函式
- 詳解c++指標的指標和指標的引用C++指標
- C語言指標(三):陣列指標和字串指標C語言指標陣列字串
- Java中如何避免空指標異常Java指標
- Go: 指標方法與值方法<->指標型別與值型別Go指標型別
- 指標常量和常量指標的區別指標
- Go語言什麼時候該使用指標 與 指標使用分析Go指標
- jmeter軟體指標和硬體指標(16.5)JMeter指標
- 皇御貴金屬:貴金屬指標之多空指標的應用解析指標
- Kafka SimpleStringSchema 可能會造成空指標異常Kafka指標
- Java中如何處理空指標異常Java指標
- 1.0 - 指標和引用指標
- Go 的記憶體對齊和指標運算詳解和實踐Go記憶體指標
- 關於零值和nil
- 徹底學會 Go 指標 -- 就要學習 Go 語言Go指標
- 關於sizeof,對空指標sizeof(*p)可以嗎?指標
- java.lang.NullPointerException 空指標異常問題JavaNullException指標
- Java關於空指標的防範與思考Java指標