gpt4 book ai didi

generics - F#:运算符绑定(bind)中的显式类型参数

转载 作者:行者123 更新时间:2023-12-03 15:01:09 25 4
gpt4 key购买 nike

我正在尝试使用显式类型参数和约束来定义运算符:

let inline (===)<'a, 'b
when 'a : not struct
and 'b : not struct> a b = obj.ReferenceEquals (a,b)

它在 F# 2.0 中运行良好,但会产生:

warning FS1189:
Type parameters must be placed directly adjacent to the type name, e.g. "type C<'T>", not type "C <'T>"



那么,为运算符定义做显式类型参数规范的正确方法是什么?

p.s.请不要告诉我隐式类型参数和其他一些解决方法,我想具体解决这个问题。

最佳答案

编译器中的错误意味着符号运算符永远不会被视为与类型参数直接相邻。您可以通过例如解决方法

let inline myeq<'a, 'b 
when 'a : not struct
and 'b : not struct> a b = obj.ReferenceEquals (a,b)

let inline (===) a b = myeq a b

关于generics - F#:运算符绑定(bind)中的显式类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3501616/

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