gpt4 book ai didi

syntax - 如何将本质上是元组的类型视为 F# 中的元组

转载 作者:行者123 更新时间:2023-12-05 00:04:51 25 4
gpt4 key购买 nike

好的,假设我有一个这样定义的类型:

type Foo = 
| Bar of (SomeType * SomeType * SomeType * SomeType)
| ...(other defs)

所以我有一个 Bar,它基本上是 4 个 SomeType 的元组。我想访问元组的各个成员。我试过这个:

让 Bar (一、二、三、四) = someBar

但是,当我稍后在函数中尝试引用一个或两个时,它说“未定义值或构造函数”,因此它没有按预期处理赋值。这样做的正确方法是什么?

另外,如果我尝试:
let one,two,three,four = someBar

它提示:
someBar 应该有类型 'a*'b*'c*'d 但这里有类型 Foo

谢谢,

最佳答案

您只需要添加另一组括号:

let (Bar(one,two,three,four)) = someBar

正如斯蒂芬指出的那样,如果没有额外的括号,编译器会将这行代码视为一个名为 Bar 的新函数的定义。 .他也是正确的,如果在可区分的联合中有其他情况,模式匹配可能更合适。

关于syntax - 如何将本质上是元组的类型视为 F# 中的元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5254667/

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