0
F #에 xxd
명령의 복제본을 쓰려고한다고 가정합니다. 두 가지 작동 모드가 있습니다. 하나는 이진 파일을 16 진 덤프로 변환하고 다른 하나는 -r
을 선택하여 16 진 덤프를 다시 이진 파일로 변환합니다.F # : if-else를 표현식 (반환 값)으로 사용 하시겠습니까?
일부 언어 나이 같은 작성할 수 :
let (inputFile, isReverse) = if args.[0] == "-r" then
(args.[1], true)
else
(args.[0], false)
...
if false == isReverse then
forwardMode inputFile
else
reverseMode inputFile
을하지만이 F 번호에 따라 컴파일하지 않는 것 같습니다. F #에서 이것을 작성하는 관용적 인 방법이 있습니까?
let isReverse = ref false
let fileName = ref args.[0]
if !args.[0] == "-r" then
isReverse := true
fileName := args.[1]
...
if false == !isReverse then
forwardMode !inputFile
else
reverseMode !inputFile
참고 : 나는 그들과 같은 것을 쓸 수있을 것 알고 있지만 나는 ref
또는 mutable
의 큰 팬이 아니에요 내가 좋은 명령 줄 파서 라이브러리에 관심이 아니에요하는 나는 수도 또는 nuget
과 연결되지 않을 수 있습니다.
이었다로
==
교체 (나는 내 하루 작업에 C++를 작성합니다.) 나는 오프사이드 규칙에 익숙해 질 수 없다. 아마도 나는 'fsharpc'를 더 신중하게 들었어야했다. – nodakai