2011-03-27 2 views

답변

2

이전에는 C와 유사한 언어 계열에 속하는 언어 ()에서은 함수에서 반환되는 유형이 없음을 나타냅니다.

더 정확하게는 변수가 주어진 유형과 마찬가지로 함수에도 유형이 있습니다. 예를 들어, int를 반환하는 함수는 int 유형 함수이거나 유형이 인 함수입니다. 그것이 다른 것을 반환하는 경우와 동일합니다.

함수가 아무 것도 반환하지 않으면 아무 것도 반환하지 않습니다. 어떤 유형이 속해 있습니까? 유형이 없으며 공은 유형을 나타냅니다.

내가 목표 C에 정통한 아니지만, 내가 제대로 이해한다면, 전무 거의 같은 유형이없는 ID (또는 모든 유형의 ID) 인 내장 null pattern의 구현입니다.

그리고 는 (무효 *)를 입력, 그냥 C와 C++에서와 마찬가지로, 아무것도 가리킬 수 있습니다 나중에 되 유형이없는 포인터이다.

따라서 nil을 반환하는 함수는 해당 유형이 모든 유형의 ID임을 의미합니다. 그것조차도 이해가되는지 모르겠다. 그래서 바로 그때 그리고 거기에서, (nil)myFunction(void)myFunction과 완전히 다른 유형입니다. 왜냐하면 전자는 하나의 유형 (모든 유형?)을 가지고 있기 때문에 나중에 유형이 없기 때문입니다.

또한 nil은 기본 제공 상수입니다. nill을 반환하는 것은 함수가 특정 숫자 (예 : (1)myFunction)를 반환한다고 말하는 것과 같습니다. 그건 말이 안되 겠어?

+0

자세한 답변을 보내 주셔서 감사합니다. 나는 항상 "무효"가 "무 (無)"또는 "무효"와 같이 "아무것도"를 의미하지 않는다고 생각했습니다. 그러나 "nil"은 유형이 아니라 값이라는 사실을 간과 한 것을 볼 수 있습니다. 이제는 모두 이해가됩니다. 아아하하하 !! – pop850

6

void은 아무 것도 아닙니다. nil은 (0) 무언가입니다.

즉, nil을 반환하는 것은 아무것도 반환하지 않는 것과 같습니다.

+0

... 값을 데이터 유형으로 사용할 수 없으므로 메소드에 'nil'을 반환하는 것으로 선언 할 수 없습니다. 사실,'nil' 자체는 (적어도 개념적으로) 적어도'id' 유형의 값이므로, 메소드에서'nil'을 리턴하기 위해 메소드의 리턴 유형은'void'가 아닌'id'이어야합니다. – jlehr

0

보이드는 객체 유형입니다. Void는 반환 값이 없음을 의미합니다.
Nil은 형식이 아닌 개체입니다. 빈 값을 나타냅니다.

관련 문제