gpt4 book ai didi

永远不会匹配与元组规则匹配的 F# 模式

转载 作者:行者123 更新时间:2023-12-04 14:55:34 27 4
gpt4 key购买 nike

首先,我是 f# 的新手,所以也许答案很明显,但我没有看到。所以我有一些带有 id 和值的元组。我知道我正在寻找的 id,我想从我传入的三个元组中选择正确的元组。我打算用两个 match 语句来做到这一点,一个嵌套在另一个中,但每件事都与第一条规则。对于此示例,我将其缩减为两个元组,因为这显示了我的问题。编译器发出“规则永远不会匹配”的警告,但我不明白为什么。

let selectTuple tupleId tuple1 tuple2 = 
match tuple1 with
| (tupleId, _) -> tuple1
| _ -> tuple2

任何关于更好的方法的帮助或建议将不胜感激。

最佳答案

使用 when条款:

let selectTuple tupleId tuple1 tuple2 = 
match tuple1 with
| (x, _) when x = tupleId -> tuple1
| _ -> tuple2

这里发生的事情是,当您使用 tupleId 时作为匹配案例的一部分,您引入了一个名为 tupleId 的新值。您可以在火柴盒右侧引用。这会影响您的函数参数。

由于您实际上只为元组的第一个元素命名,因此任何元组都将匹配第一个案例,这就是您在第二个案例中获得“规则将不匹配”警告的方式。

关于永远不会匹配与元组规则匹配的 F# 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41859796/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com