This question Scala 컬렉션을 확장하는 방법은 this answer으로, 이는 Set
이 아닌 SetProxy
에서 확장되었습니다. 그러나 SetProxy
은 (는) 사용 중단되었습니다. 설명서에 "(버전 2.11.0 이상) 사용 부족 및 컴파일러 수준 지원으로 인해 프록시가 지원되지 않습니다."프록시가 사용되지 않는 이유는 무엇입니까?
프록시가 사용되지 않고 컴파일러가 지원되지 않는 이유는 무엇입니까? 스칼라가 똑같은 일을 수행하는 데 더 좋은 기술을 제공합니까? 치명적인 결함이있는 것으로 밝혀 졌습니까?
Yikes! 나는 프록시 클래스가 수동으로 유지된다는 것을 깨닫지 못했다. 나는 그들이 영리한 포워딩 메커니즘으로 일해야만한다고 생각했다. Scala는 프록시가 수행하는 작업을 수행 할 다른 방법을 제공합니까 (예 : http://stackoverflow.com/questions/24301098). 매크로, 아마도? –
컬렉션을 확장하는 것은 쉬운 일이 아닙니다. 당신은 아마도 당신의 새로운 콜렉션에 map이 같은 타입의 콜렉션을 리턴하기를 원할 것입니다. 그러나 그것을 위해서 당신은 당신의 새로운 클래스 외에'CanBuildFrom'과 아마도'YourNewSetLike'를 필요로합니다. 프록 싱은 블랙 박스 매크로가 당신을 도울 수있는 것이 아니지만 다른 사람들은 할 수있을 것입니다. 컴파일러 플러그인은 갈 길이 멀지 만 콜렉션 계층은 자동 솔루션을 찾을 때 컴파일러가 정렬 할 수있는 것보다 더 많은 기능을 사용합니다. 나는 훌륭한 해결책이 있는지 확신하지 못합니다. –