2
그래서지도 기능을 HList
이상으로 만들고 싶었지만 적용 기능 내에서 몇 가지 조건을 확인해야합니다. 매끄러운처럼 : 결과로폴리 함수, 스칼라에서 타입 소거
object test extends Poly1 {
implicit def default[L <: HList](implicit head: ops.hlist.IsHCons[L]) =
at[L](t => {
if(true) t.head else false //here some condition
})
}
, 우리는 t.head
요소의 type
에 대한 모든 정보를 잃게; btw 우리가 "깨끗한"기능을 구축하는 경우 :
object test extends Poly1 {
implicit def default[L <: HList](implicit head: ops.hlist.IsHCons[L]) =
at[L](t => t.head)
}
그렇다면 모두 괜찮습니다.
그래서 문제는 어떻게 처리하고 그런 종류의 기능을 만들 수 있습니까 (가능한 경우) 또는 다른 방법으로 검색해야합니까? 왜 여기에 문자를 지울 수 있습니까?
오, 알 겠어. 만약 내가 다음과 같이 쓰면 :''[L] (if (true) t => t.head else t => false)'나는 Any를 얻을 것이다. 모든 기능 유형의 원인? 내가 생각하기에 ... Thx는 'head'사용법, btw에 대한 멋진 참고 사항으로 다른 모든 암시 (map, flat map, diff custom helpers 등)를 전달하지 않는 것이 좋습니다. : D – DaunnC
오프 나는 완전히 이해했다! 너는 이제 나에게 분명하다. – DaunnC