我正在查看http://elm-lang.org/examples/zip上的zip
示例,我对榆树中_
的确切含义有疑问。
zip : List a -> List b -> List (a,b)
zip xs ys =
case (xs, ys) of
( x :: xs', y :: ys' ) ->
(x,y) :: zip xs' ys'
(_, _) ->
[]
我的预感是它意味着“其他一切”,但这是否意味着任何有效价值?如果没有价值怎么办?
答案 0 :(得分:8)
_
用于匹配您不关心价值的任何内容,因此它通常用于匹配"其他所有内容"情况下。
在您的示例代码中,(_, _)
将匹配任何元组,其中包含2个值。请注意,它也可以仅用_
替换,因为您最终不关心任何一个值。一个更具说明性的示例是您关注元组中的一个值但不关注另一个值的位置,例如fst
in the core package的实现
fst : (a,b) -> a
fst (a,_) =
a
我们不关心元组中的第二个值,因此它只与该位置的_
匹配。
榆树中没有null
或undefined
,因此您不必担心没有价值" (如果某些东西没有价值,则使用Maybe类型。)