문자열의 0은 무엇입니까?


133
func NewKey(c appengine.Context, kind, stringID string, intID int64, parent *Key) *Key

문서는 말합니다 :

NewKey는 새 키를 만듭니다. 종류는 비워 둘 수 없습니다. stringID 및 intID 중 하나 또는 둘 다 0 이어야합니다 . 둘 다 0이면 리턴 된 키가 불완전합니다. parent는 완전한 키이거나 nil이어야합니다.

문자열의 0은 무엇입니까?

나는 시도 0하고 다음과 nil같은 오류가 발생했습니다.

cannot use nil as type string in function argument

답변:


226

그건 "":

var s string
fmt.Println(s=="") // prints "true"

문자열은 nil이 될 수 없습니다 (그러나 *string캔).

당신은 단순히 테스트 할 수 있습니다

if stringId=="" {

에서 제로 문자열을 전달하려면 stringID, 사용을

k := NewKey(c, "kind", "", 0, p)

에서 사양 :

선언 또는 make 또는 new 호출을 통해 값을 저장하기 위해 메모리가 할당되고 명시적인 초기화가 제공되지 않으면 메모리에 기본 초기화가 제공됩니다. 이러한 값의 각 요소는 해당 유형의 0 값으로 설정됩니다. 부울의 경우 false, 정수의 경우 0.0, 부동 소수점의 경우 0.0, 문자열의 경우 "" , 포인터, 함수, 인터페이스, 슬라이스, 채널 및 맵의 경우 nil.


값이 0 인 문자열과 * string에 대한 간단한 테스트 : var s string; fmt.Println (s == "", * new (* string) == nil)
Tom J

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.