Scala에서 프로토 타입 기반 프로그래밍을 수행 할 수 있습니까?Scala에서 프로토 타입 기반 프로그래밍을 할 수 있습니까?
답변
EasyAngel에 동의하는 동안 프로토 타입 메커니즘을 사용하는 방법에 따라 Scala 메커니즘을 사용하여 비슷한 목표를 달성 할 수 있습니다. 예를 들어,보다 일반적인 클래스와 혼합 될 수있는 특성을 정의 할 수 있습니다.
잠재적으로 관련성이 높은 다양한 특성을 혼합하고 일치시킬 수 있기 때문에 어떤면에서는 프로토 타입 개체 생성보다 강력합니다. 대상 하위 클래스에서 사용자 정의하고 확장 할 수도 있습니다.
질문을 명확히하면 더욱 집중된 대답이 허용됩니다.
제 견해로는 프로토 타입 기반 언어의 대부분이 클래스가 없거나 좋아하는 것에서 비롯됩니다. 이 흥미로운 InfoQ 비디오는이 주제와 관련이 있다고 생각합니다. [클래스는 조기에 최적화되었습니다] (http://www.infoq.com/presentations/Classes-Are-Premature-Optimization). 나는 [autoproxy 스칼라 컴파일러 플러그인] (https://github.com/scala-incubator/autoproxy-plugin) (동적 혼합으로 참조 될 수도 있음)이이 경우에 더 적합 할 수 있다고 생각합니다. – tenshi
프리젠 테이션과 소프트웨어 설명 모두에 감사드립니다. 그러나 우리는 둘 다 필요합니다. 이상적인 (추상적 인) 유형화와 원형 (경험적) 일반화는 각각 개념적 (그리고 표현 적) 경제에 기여한다. 어떻게 한 사람의 결여가 다른 사람의 공헌에 기여합니까? – Situagent
쉬운 천사는 누구입니까? –
필자는 Easy Angel에 동의해야합니다 ... 스칼라 객체에는 클래스가 필요하지 않습니다 (여전히 모든 유형이 있지만 ... 동일하지는 않습니다). 그것의 이러한 개체에 대한 기능을 쓸 수있는 구조 입력에
또한val martin = new {
val name = "Martin"
val surname = "Ring"
def age = Calendar.getInstance.get(Calendar.YEAR) - 1986
}
감사 쓰기 완벽하게 확인 :
def printPerson(person: { def name: String; def age: Int }) =
println("%s (%d)".format(person.name, person.age))
는 printPerson(martin)
를 호출 할 수 있습니다 그것은에 대한 Martin (25)
그래서 필요를 출력하지 않습니다 클래스 또는 특성을 원하는 경우
그러나 익명 형식의 개체를 복제하고 확장 할 수 없기 때문에 프로토 타입 기반 프로그래밍은 언어에서 지원되지 않습니다 (imho). 나는 당신이 할 수있는 함수를 작성할 수 있다고 생각합니다 ... 그러나 그들은 반사의 방대한 사용을 요구할 것이고 따라서 기본 lanugage 지원이 없습니다. ..
easyangel은 누구인가요? –
- 1. OOP : 클래스 기반 및 프로토 타입 기반, 다른 대안이 있습니까?
- 2. 프로토 타입
- 3. 프로토 타입
- 4. 프로토 타입
- 5. 프로토 타입
- 6. 프로토 타입
- 7. 프로토 타입
- 8. 프로토 타입 기반 OO가 클래스 기반 OO보다 갖는 이점은 무엇입니까?
- 9. 자바 스크립트 프로토 타입 확장을 등록 해제 할 수 있습니까
- 10. 프로토 타입 : 이전 개체로?
- 11. 프로토 타입 선택자
- 12. 프로토 타입 : 변경 속성
- 13. PHP에서의 프로토 타입 상속
- 14. 어떻게 프로토 타입
- 15. JavaScript 프로토 타입 draggable
- 16. 프로토 타입 - 테이블 셀
- 17. 함수 프로토 타입 선언
- 18. 프로토 타입 신경 네트워크
- 19. 프로토 타입 대 클래스
- 20. JavaScript 프로토 타입 문제
- 21. 전 인스턴스화 프로토 타입
- 22. jQuery/프로토 타입 충돌
- 23. 프로토 타입 변환
- 24. "순수한"프로토 타입 언어
- 25. jQuery를 사용한 프로토 타입
- 26. 프로토 타입 : Element.remove.bind (푸)
- 27. node.js의 프로토 타입 상속
- 28. 프로토 타입 생성자 전화는
- 29. 이 대 프로토 타입
- 30. 웹 기반 응용 프로그램을위한 완벽한 기능의 프로토 타입 구현
당신의 질문은 명확하지 않습니다. 질문을 더 정확하게 묘사 해 주실 수 있습니까? 스칼라가 Io 나 JavaScript와 같은 프로토 타입 기반 언어인지 여부를 알고 싶다면 대답은 '아니오'입니다. 스칼라에는 새로운 객체에 대한 청사진 인 클래스가 있으며 필수입니다. 따라서 그러한 청사진 없이는 객체를 생성 할 수 없습니다. – tenshi