3
를 요소에 액세스하려면 :OCaml의 방법 OCaml의에서 다음과 같은 유형의 정의와 유형 정의에
type yearday = YMD of int * int * int
은 어떻게 종류의 서로 다른의 int에 액세스 것인가? 마치 첫 번째 int 값을 원한다면.
를 요소에 액세스하려면 :OCaml의 방법 OCaml의에서 다음과 같은 유형의 정의와 유형 정의에
type yearday = YMD of int * int * int
은 어떻게 종류의 서로 다른의 int에 액세스 것인가? 마치 첫 번째 int 값을 원한다면.
이와 같은 값의 부분은 패턴 일치를 통해 액세스됩니다. 이 최상위에 모양을
다음let y_of_ymd (YMD (y, _, _)) = y
이야 (OCaml의 REPL) :
# let y_of_ymd (YMD (y, _, _)) = y;;
val y_of_ymd : yearday -> int = <fun>
# let myymd = YMD (2017, 4, 18);;
val myymd : yearday = YMD (2017, 4, 18)
# y_of_ymd myymd;;
- : int = 2017
#
업데이트 개 이상의 변종이있는 경우
여기에 첫 번째 INT를 반환하는 함수입니다 귀하는 어떤 종류의 가치가 있는지를 결정하기 위해 match
을 사용할 수 있습니다.
type yearday = YMD of int * int * int | YD of int * int
let y_of_yearday yearday =
match yearday with
| YMD (y, _, _) -> y
| YD (y, _) -> y
이것을 작성하는 데 더 간결한 방법이 있지만 이것이 무슨 일이 일어나고 있는지에 대한 최선의 생각을 제공한다고 생각합니다.
감사합니다. 후속 질문 : 형식 정의에 두 가지 옵션이있는 경우 : type yearday = YMD of int * int * int | int * int의 YD ;; y_of_ymd를 타입의 두가지 정의 모두에 대해 작동시키는 방법이 있는가? 아니면 그것이 어떤 정의인지를 찾는 방법 일까? –
네, 변형이 다르면 변형이 하나 더 많을 수 있습니다. 내 대답을 업데이트 할게. –
고마워요! 이것은 많은 도움이되었습니다. –