왜 다음 줄에 |> 넣을 수 있습니까? 구문 오류가 발생합니까?
let foo = bar
|> baz
하지만 이렇게하면 구문 오류가 발생합니다.
let foo = bar
<| baz
왜?
필자는 나름의 중위 연산자를 정의하고 이런 식으로 사용하려고 할 때 구문 오류가 발생합니다.
왜 다음 줄에 |> 넣을 수 있습니까? 구문 오류가 발생합니까?
let foo = bar
|> baz
하지만 이렇게하면 구문 오류가 발생합니다.
let foo = bar
<| baz
왜?
필자는 나름의 중위 연산자를 정의하고 이런 식으로 사용하려고 할 때 구문 오류가 발생합니다.
뭔가를 놓치지 않는 한, 두 연산자 (다른 중위 연산자뿐만 아니라)도 똑같이 작동합니다. bar
및 baz
을 정의하고 예제를 사용하면 두 경우 모두 오류가 발생합니다. F 번호의 오프 사이드 규칙은 왼쪽에서 적은 지금까지 운영자를 들여 할 수 있지만, 인수의 열이 일치해야합니다 :
let foo1 = bar
|> baz
let foo2 = baz
<| bar
:
이
let bar = 1
let baz x = x + 1
let foo1 = bar
|> baz
let foo2 = baz
<| bar
는이 두 오류 메시지 제공
(F # 컴파일러는 구문 오류가 발생하여 추가 오류를보고하지 않기 때문에 첫 번째 오류 만 표시 될 수 있습니다.) -
이 규칙은 MSDN의 Code Formatting Guidelines에 설명되어 있습니다. 다음의 두 작동했기 때문에
나는 들여 쓰기 오류를 잡을하지 않았다
match r.IsDBNull index with
| true -> None
| _ -> r.GetValue index
:?> 'a
|> Some
let param p =
db.CreateParameter p
|> cmd.Parameters.Add
|> ignore
을 한번 탭을 공격 만했다하더라도. 그래서 내 오해가 공백없이 너무 오래로하지 않았다이었다
let foo2 = proc "getfoo2"
<| [ "x",Int32,In;
"y",String(15),In ]
let foo2 =
proc "getfoo2"
<| [ "x",Int32,In;
"y",String(15),In ]
: 아직 예전에 여기에 탭을 공격하고, 제대로 들여 쓰기되지 않은 :
let foo2 = proc "getfoo2"
<| [ "x",Int32,In;
"y",String(15),In ]
이 두 중 하나를 있었어야 이전의 줄보다 더 들여 쓰기가되었습니다. 그렇지 않다.
해당 링크를 북마크했습니다. 감사합니다. –