반응형
type Entry struct {
name string
surname string
tel string
}
var data []Entry
func search(surname string) *Entry {
for key, value := range data {
if value.surname == surname {
return &data[key]
}
}
return nil
}
이건되고
type Entry struct {
name string
surname string
tel string
}
var data []Entry
func search(surname string) Entry {
for key, value := range data {
if value.surname == surname {
return data[key]
}
}
return nil
}
왜 이건 return nild에서 에러가날까
Cannot use 'nil' as the type Entry
nil is a predeclared identifier representing the zero value for a pointer, channel, func, interface, map, or slice type.
Type must be a pointer, channel, func, interface, map, or slice type
Entry가 리턴타입인 경우,
Entry타입만이 올 수 있지만
*Entry 와 같은 포인터타입인 경우,
포인터,채널,함수,인터페이스,맵,슬라이스의 0를 의미하는 미리선언된 식별자인 nil을 사용할 수 있기 때문이다.
반응형
'재학습 > 오류' 카테고리의 다른 글
[Github actions] - invalid reference format, 왜 실패하는거야? (0) | 2024.05.14 |
---|---|
[AWS] Permissions for ~ are too open. pem bad permissions 오류 해결 (0) | 2024.05.13 |
[GIT] does not have a commit checked out (0) | 2023.06.27 |
[NPM] npm ERR! code EACCES errno -13 (0) | 2023.06.26 |
[Npm] sill idealTree buildDeps (0) | 2023.01.16 |