问题标签 [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.
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)
版本给了我:
尝试使用多个参数访问任何其他重载时会发生类似错误:
那么,我在类型注释方面做错了吗?
flutter - Dart中的Function first class和void函数有什么区别
为了优化我的代码,我尝试在 GestureDetector 小部件的 onTap 属性中使用 Function 第一个类,如下面的代码所示:
但我得到了那个错误:参数类型“函数?” 不能分配给参数类型“void Function()?”。
希望有人可以解释这里发生了什么,并在此之前感谢您。