You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

F#中Foo类Yield成员的.fsi签名如何正确定义?

F#计算表达式Yield成员的.fsi签名问题

正确的.fsi文件写法如下:

type Foo() =
    member Yield: unit -> unit

原因说明

  • 你的实现代码type Foo() = member _.Yield(()) = ()定义了一个带无参构造函数的类,其中Yield是接受unit类型参数的实例成员,签名为unit -> unit。
  • 之前你在.fsi中使用type Foo =(省略构造函数),导致类型定义和实现的类结构不匹配,编译器无法识别对应的实现,因此报错“实现缺失”。
  • 若将实现改为无参的Yield(),该成员不接受任何参数,但计算表达式调用Yield时会自动传入()作为参数,必然触发参数数量不匹配的错误。

内容的提问来源于stack exchange,提问作者capitalistcuttle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 09:21:13