2014-06-16 7 views
3

작용 :F 번호 ((*) 2) 및 ((<<<) 1) I 코드의 두 조각이 다르게

  • [| 0 .. N-1 |] |> Array.map((<<<)1)

  • [| 0 .. N-1 |] |> Array.map((*)2)

을 나는 그들이 똑같은 일을한다고 생각했지만 그렇지 않다. 첫 번째 경우는 1, 2, 4이고 두 번째 경우는 0, 2, 4입니다. 왜 첫 번째 경우에 1이 있는지 이해할 수 없습니까? let a = 0 <<< 1으로 작성하면 0이됩니다. 이거 버그 야? 감사합니다.

답변

8

인수는 사용자가 생각하는 순서가 아니며 다른 방법입니다.

let a = 1 <<< 0 // this is equivalent to ((<<<)1) 0 

괄호 연산자 후 첫 번째 인수는 왼쪽 인수하지 않을 권리입니다 :

은 그것을 비교.

+0

감사합니다. 좋은 선생님! –

관련 문제