2013-01-31 2 views
2

다이내믹 타이핑, 오리 타이핑, 다형성 및 파라 메트릭 다형성의 차이점은 무엇입니까?다이내믹 타이핑, 오리 타이핑 및 파라 메트릭 다형성의 차이점은 무엇입니까?

Ruby에 각각 (according to Wikipedia)이 있기 때문에 문의하는 것이 더 일반적이지만 관심이 있습니다.

+2

루비가 매개 변수 다형성을 사용한다고 누가 말합니까? – delnan

+1

[Wikipedia] (http://en.wikipedia.org/wiki/Ruby_%28programming_language%29) – Tom

답변

1

동적 타이핑은 변수 유형을 정의 할 필요가 없음을 의미하며, 언어 인터프리터는 해당 변수의 유형 (숫자, 부울, 문자열 등)을 추측하려고 시도합니다. 오리 우리가 객체가 어떤 종류의에 관심이없는 대신에 우리가 객체의 기능적인 측면에 더 관심이 있다는 것을 의미 입력

: 객체는 우리가 관심이 그 방법을 반환하는 경우는, 다음이 의미하는 것을 객체가 우리의 요구 사항을 만족시킨다. 따라서 잘 알려진 문구는 다음과 같습니다. "오리처럼 걷고 오리처럼 수영하고 오리처럼 돌팔이가 새는 오리는 그 새".

Wikipedia : 파라 메트릭 다형성은 전체 정적 유형 안전성을 유지하면서 언어 표현력을 향상시키는 방법입니다. 파라 메트릭 다형성을 사용하면 함수 또는 데이터 유형을 유형에 의존하지 않고 값을 동일하게 처리 할 수 ​​있도록 총칭 할 수 있습니다.

+8

다이내믹 타이핑의 정의가 정확하다고 생각하지 않습니다 - ML은 정적 타이핑을 사용하지만 말하지 않아도됩니다. 변수가 어떤 유형인지, 대신 유추됩니다. – Tom

+3

그 중 올바른 것은 없습니다. 1. 동적 타이핑은 유형 검사가 동적으로 수행됨을 의미합니다. 당신이 말하는 것은 암묵적인 타이핑입니다. 그리고 가장 확실한 추측은 없습니다. 2. 물론, 우리는 어떤 유형의 객체인지에 관심이 있습니다. 바로 그것이 타이핑입니다. 오리 타이핑은 유형이 객체의 행동 적 사양 (Ruby 용어의 프로토콜 또는 Java 인터페이스의 인터페이스)을 기반으로하고 클래스는 아닌 것을 의미합니다. 3. 그 정의가 맞지만 가장 중요한 점은 빠져있다. Ruby에서는 PP가 정적 타이핑의 한 특징이다. –