F# 活动模式作为非静态成员

2024-02-10

我不确定是否允许非静态公共成员活动模式,但您可以定义它们而不会引起编译器的抱怨。如果允许的话,匹配的语法是什么?编译器给我 FooBar2.doSomething 中的 Foo 类型不匹配。期待一个'a -> Choice<'b,'c> given 'a -> 'd -> Choice<unit,unit>

// No error in this class, static works great
type FooBar() = 
    static member (|Foo|Bar|) (x, y) =
        match x = y with
        | true -> Foo
        | false -> Bar

    member x.doSomething y =
        match x, y with
        | Foo -> ()
        | Bar -> ()

type FooBar2() = 
    member x.(|Foo|Bar|) y =
        match x = y with
        | true -> Foo
        | false -> Bar

    // compiler error on "Foo"    
    member x.doSomething y =
        match y with
        | Foo -> ()
        | Bar -> ()

活动模式不应用作成员。事实上,这些编译器完全是一个编译器错误,我们将修复该错误(感谢您的报告:))。使用本地或模块绑定的“let”来定义活动模式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

F# 活动模式作为非静态成员 的相关文章

随机推荐

  • 将字符串解析为 datetime64 的 Vaex 函数是什么,相当于 pandas to_datetime,允许自定义格式?

    我有日期字符串 例如 3 24 2020 我想将其转换为datetime64 ns format df2 date pd to datetime df1 str date format m d Y 使用熊猫to datetime在 vaex
  • Android 光传感器未触发事件

    使用光传感器时 我遇到一个问题 即永远不会触发 onSensorChanged 事件 原因是 当侦听器注册时 如果 lux 值保持不变 则不会发生变化 因此不会发生事件 不过 我还是想知道勒克斯值 恒定勒克斯值 0 和恒定勒克斯值 60 0
  • 如何链接 TFS 构建?

    我有一个场景 我想从另一个 TFS 构建调用一个 TFS 构建 第一个执行构建 第二个执行暂存 这将允许我为同一解决方案执行多个自定义暂存 我知道 我可以通过第二个构建中的 exec 任务来完成此任务 并调用 tfsbuild exe 将第
  • 带有 HTTPBody 输入流的 NSURLRequest:流在打开之前发送事件

    我想使用以下方式将大量数据发送到服务器NSURLConnection and NSURLRequest 为此 我创建了一对绑定的NSStreams 使用CFStreamCreateBoundPair 然后我将输入流传递给NSURLReque
  • 如何使用YouTube API检查视频是否受到限制?

    当嵌入这个Youtube 视频 https www youtube com embed dYQ2IyMuPes例如 我们得到This video contains content from who has blocked it from d
  • 旋转的 3d 导航栏

    我正在尝试使用纯 CSS 以及变换 过渡和透视来创建 3d 导航栏 这是我的代码 navbar fixed bottom background transparent navbar perspective width 100 height
  • 最令人烦恼的解析是否带有限定 ID?

    考虑 struct Foo enum bar explicit Foo int struct Baz explicit Baz Foo Baz b Foo Foo bar 1 第 1 行是最令人烦恼的解析吗 Foo bar is a 合格的
  • 检查继承函数的函数签名

    我需要检查容器擦除函数是否返回迭代器 我通常会通过例如检查函数签名促进 但在 boost 类 例如 flat set 的情况下 擦除是继承的 因此检查找不到 但我确实需要它 SFINAE 检查继承的成员函数 https stackoverf
  • Emoji 转 JSON 编码,发布到 Web 服务器

    请帮助我解决发布 JSON 解码表情符号字符时遇到的问题 我有一个 UITextView 这个文本视图可能有表情符号字符 我将数据发布到 Web 服务器 其中 UITextView text 以 JSON 形式呈现 问题是当文本具有表情符号
  • SWIG 从不同模块导入生成的类并打包到当前类中

    我在获取 SWIG 时遇到困难类型映射 java包 http www swig org Doc1 3 Java html java directors typemaps才能正常工作 我尝试制作一个简单版本的问题 但即使这样似乎也失败了 fo
  • python 3 中的 types.ClassType 发生了什么?

    我有一个脚本 我在其中做了一些神奇的事情来动态加载模块 并实例化模块中找到的第一个类 但我不能使用types ClassTypePython 3 中不再这样了 现在执行此操作的正确方法是什么 我想到了 看起来类的类型是 type 下面是如何
  • 如何针对堆栈测试新的 ghc 构建

    我已经构建了 ghc HEAD 我想尝试构建所有 stackage lts 或 nightly 看看它能做多少事情 我所说的任何内容都无法说服 stack 使用我的新 ghc 构建任何东西 我尝试设置如下 stack setup 8 1 2
  • Xamarin 表单,拉动刷新 UWP 中的 listView

    在 Windows 桌面上运行时如何刷新 Xamarin 表单列表 看来我们无法拉动刷新 谢了 Fran ois 在 Xamarin Forms 上的 ListView 中拉动刷新需要您实现这 3 件事 IsPullToRefreshEna
  • 如何从 PowerShell 激活 Conda 环境?

    Version Anaconda https en wikipedia org wiki Anaconda Python distribution 4 8 3 我不能做什么 我不能activate来自 PowerShell 的任何环境 co
  • zlib 库的 pip 安装失败

    当我尝试通过以下命令安装 zlib 时 sudo pip install zlib 我遇到以下错误 Could not find any downloads that satisfy the requirement zlib Cleanin
  • Firebase Cloud Messaging 不同的键

    当前生成的密钥是什么google services json制作项目时的文件 当前密钥 Web API 密钥和服务器密钥之间有什么区别 在哪里可以找到当前密钥 FCM 控制台 我找不到它 目前还没有文档清楚地讨论了在google servi
  • 为什么 core.async go 块返回一个通道?

    我理解 去块 无论是go or go loop或可能的其他构造 返回一个通道 但我一直不明白这个频道的目的 我想知道如何使用它 也许我在不需要的时候创建了额外的频道 我使用的返回通道go block 作为句柄 我可以将其传递给另一个想要与完
  • [Environment]::SetEnvironmentVariable 未永久设置

    From 设置 Windows PowerShell 环境变量 https stackoverflow com a 2571200 3416774 我用它作为管理员 PS D gt Environment SetEnvironmentVar
  • 使用 javascript 获取已安装扩展的列表

    我想弄清楚是否可以使用 javascript 获取所有已安装的浏览器扩展的列表 我明白这是可能的 chrome 使用 chrome extension 参考 火狐 使用 Application extensions all 但在 IE 和
  • F# 活动模式作为非静态成员

    我不确定是否允许非静态公共成员活动模式 但您可以定义它们而不会引起编译器的抱怨 如果允许的话 匹配的语法是什么 编译器给我 FooBar2 doSomething 中的 Foo 类型不匹配 期待一个 a gt Choice lt b c g