2010-12-18 8 views
3

나는 업데이트에 SQueryL documentation을 읽고 있던 나는 보았다 SQueryL 물결표 연산자는 무엇을합니까?

update(songs)(s => 
    where(s.title === "Watermelon Man") 
    set(s.title := "The Watermelon Man", 
     s.year := s.year.~ + 1) 
) 

은 내가 SQueryL 소스 코드에서 ~ 방법과 분명히 어느 무엇을 말해주지 않는 링크 된 문서를 찾는 것이 어려웠습니다. 누구든지 설명해 주겠니?

+0

설명서가 불완전한 것처럼 보입니다. 아마도 메일 링리스트를 사용해 보시겠습니까? –

+0

문서가 손상되어 궁금해서 토론 그룹에 요청했습니다. –

답변

4

얼마 전에 Schema Definition Page에서 물결표 연산자에 대해 읽었습니다. (비록 스칼라를 배우기 시작한 직후이지만) 나에게 다소 모호하게 들릴지 모르지만, 원시 타입과 커스텀 타입 사이의 불분명 함을 말합니다.). 작은 조각

...

중요한 인용하면 org.squeryl.PrimitiveTypeMode를 사용하는 경우 모드가 수치 연산자

사이에 모호성이있을 수 PrimitiveTypes에를, 컴파일러는 등의 표현을 처리합니다 다음 예에서 하나는 부울입니다. . ...

을 다음 ~ 함수는 왼쪽은 전체 표현식이 절은 소요 무엇 인 LogicalBoolean 원인이 될 것이다 TypedExpressionNode의 노드 [지능이]는 컴파일러에게 필요하다

희망이 있습니다.

+0

아 좋아요. 그래서 ~ op는 ~을 입력 한 후 PrimitiveTypeMode에서 마술처럼 암시적인 변환을하는 NumericalExpression에서 오는 것 같습니다. 당신이 필요로하는 유일한 이유는 implicits의 불가사의 한 성질로 인해 산술/논리 연산이 무엇을 해결할 지 결코 확신 할 수 없기 때문입니다. 'plus'또는 '~'을 사용하면 올바른 유형을 얻을 수 있습니다. –