-
0 votesanswersviews
联盟类型scala的集合
在scala中是否可以拥有联合类型的集合 . 有几种方法可以讨论联合类型here评价最高的答案感觉最本土,我有这样的事情: sealed trait StringOrNumber[T] object StringOrNumber { implicit object IntWitness extends StringOrNumber[Int] implicit object Stri... -
4 votesanswersviews
Typescript使用Observable.of区分联合类型
我正在尝试将Typescript 2.0的区分联合类型与RxJS一起使用,但是我收到的错误是我返回的对象不是union类型的类型之一 . 这是我的类型: interface Square { kind: "square"; width: number; } interface Circle { kind: "circle"; radius:... -
0 votesanswersviews
惯用语打字记Enum歧视联盟
从typescript 2.0开始,您可以使用带有枚举的区别联合作为判别式,如下所示: export function getInstance(code: Enum.Type1, someParam: OtherType1): MyReturnType1; export function getInstance(code: Enum.Type2, someParam: OtherType2): M... -
4 votesanswersviews
TypeScript:从有区别的联合派生 Map
我有一个区别的联合类型,它根据字符串文字字段区分类型 . 我想派生一个映射类型,它将联合中的所有类型映射到它们对应的鉴别器文字值 . 例如 export type Fetch = { type: 'fetch', dataType: string }; export type Fetched<T> = { type: 'fetched', value:... -
1 votesanswersviews
为区分联合类型实现快速CustomEquality和CustomComparison
为了用键引用一些坐标,我想使用有区别的联合类型,因为它们允许所有种类的有效模式匹配 . 考虑下面的代码snipet: [<CustomEquality; CustomComparison>] type Coord = | Spot of AssetKey | Vol of AssetKey * DateTime option | Rate of Currency ... -
3 votesanswersviews
为F#中受歧视的联合自动生成谓词和访问器
在F#中是否可以以类型安全的方式自动生成任意代数数据类型的谓词和访问器? 例如,如果我们有用户定义的类型: type A = B of string | C of int * sting 应该生成这样的东西: type A = B of string | C of int * sting with member __.isB = mat... -
8 votesanswersviews
F#中区分联合的类型扩展
我已经定义了以下歧视联盟: type Expr = | Con of Num | Var of Name | Add of Expr * Expr | Sub of Expr * Expr | Mult of Expr * Expr | Div of Expr * Expr | Pow of Expr * Expr 然后我创建了一个漂亮的... -
3 votesanswersviews
如何在F#中为一个受歧视的联盟覆盖GetHashCode和CompareTo?
我有一个简单的F#区分联合,它结合了bool,一个字符串和一个浮点数 . 我想覆盖此联合的Object.Equals(arg),以便在检查浮点相等时我可以放入epsilon来解决精度错误 . 编译器抱怨说如果我覆盖this.Equals(arg),我也应该重写this.GetHashCode()和this.CompareTo(arg) . 对于这些覆盖,我没有计划特殊功能,所以我只想调用这些方法的... -
20 votesanswersviews
H#中的代数数据类型是否在F#中具有相同的区分联合?
我正在学习Haskell,并想知道Haskell中已知的代数数据类型是否与F#中的区分联合相同,或者它们之间存在一些细微差别 . 我还非常感谢F#(我的第一个函数式语言)与其他函数式语言之间的良好比较,特别是在类似概念方面,但具有实质性但重要的差异 .