golang - 길이가 0인 slice는 nil로

출처

package main

import (
    "fmt"
)

func testNil(p []byte) {
    fmt.Printf("p: %v\n", p)
    fmt.Printf("len(p): %d\n", len(p))
    fmt.Printf("cap(p): %d\n", cap(p))
    for i := range p {
        fmt.Println("NG: %d\n", i)
    }
    fmt.Printf("p[:]: %v\n", p[:])
    fmt.Printf("append(p, 0): %v\n", append(p, 0))
}

func main() {
    testNil(nil)
}

결과

p: []
len(p): 0
cap(p): 0
p[:]: []
append(p, 0): [0]

이 글은 2018-07-10에 작성되었습니다.