问题标签 [first-class]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
48 浏览

function - F#:如何将 Dotnet 对象的方法的特定重载作为第一类对象访问

我可以这样做(F# FSI):

这使得方法GetHashCode可以作为绑定中的一流函数访问和调用m

如果有问题的方法存在重载,我将如何执行此操作,比如说另外一个Object.GetHashCode(int whateverParameter)?我现在只能得到“第一个”(最短的?)方法。我可以在调用1中提供额外的参数类型信息来指定我想要的重载吗?

编辑

感谢您迄今为止的意见。类型注释似乎是要走的路。尽管如此,对于我更复杂的例子,我仍然无法弄清楚如何正确地做到这一点。

以下是我正在处理的类型的具体方法签名(它来自octokit.net库,因此您需要在 fsi #r "nuget:include=Octokit"[with /langversion:preview] 中使用类似的东西)。

我有兴趣检索 的特定重载GetAllForRepository,顺便说一下列出的第一个:GetAllForRepository(string, string)

现在,“最短”签名采用一个int64参数:

我可以显式声明签名并接收相同的方法:

但是访问该(string, string)版本给了我:

尝试使用多个参数访问任何其他重载时会发生类似错误:

那么,我在类型注释方面做错了吗?

0 投票
2 回答
90 浏览

flutter - Dart中的Function first class和void函数有什么区别

为了优化我的代码,我尝试在 GestureDetector 小部件的 onTap 属性中使用 Function 第一个类,如下面的代码所示:

但我得到了那个错误:参数类型“函数?” 不能分配给参数类型“void Function()?”。

希望有人可以解释这里发生了什么,并在此之前感谢您。