我有一些代码:
let some_func some_arg = (* ... *)
其中CCD_ 1确实需要是CCD_。我想在函数参数的位置进行模式匹配,比如:
let some_func [| arg1; arg2 |] = (* ... *)
但我也想保留变量名some_arg
,以防我想直接使用它。我该怎么做?
函数参数是模式,因此可以使用as
构造来命名模式的部分(或全部(:
let some_func ([| arg1; arg2 |] as some_arg) = (* . . . *)
然而,这种模式并不详尽,因为它只匹配长度为2的数组。因此,这是一个脆弱的函数定义,编译器会发出警告。
最好只使用match
,这样当数组的长度不是2时,就可以指定所需的行为。或者,您可以使用总是正好有2个组件的类型(例如元组(。