scala - 没有证据的证据
问题描述
是否有一种Not[Ev]
类型或实现它的方法,我可以通过以下方式使用
def someMethod[X,Y](implicit ev:Not[X <:< Option[Y])= ???
意味着 X 类型不是 Option[_] 类型?(并且可以做更多的事情)
解决方案
文档implicitAmbiguous
建议以下类型不等式的实现
trait =!=[C, D]
implicit def neq[E, F] : E =!= F = null
@annotation.implicitAmbiguous("Could not prove ${J} =!= ${J}")
implicit def neqAmbig1[G, H, J] : J =!= J = null
implicit def neqAmbig2[I] : I =!= I = null
在哪里
def someMethod[X,Y](implicit ev: X =!= Option[Y])= ???
someMethod[Int, String] // ok
someMethod[Option[Int], Int] // error
推荐阅读
- node.js - Heroku 部署:即使在部署到 Heroku 之后,MERN Stack 应用程序也只能在本地工作
- amazon-web-services - Blazor 服务器端 - AWS 环境中频繁出现 504 错误
- heroku - 为什么我的 Discord Bot 在 heroku 中不断崩溃?
- android - React Native Google Signin 与多个帐户
- android - 房间一对多关系与两个表上的条件
- node.js - 如何将 await 与 promisify 一起用于 crypto.randomBytes?
- java - 实时获取 Selenium 性能日志(Java、Kotlin)
- windows - 恢复windows中用rm命令删除的文件
- ruby-on-rails - 如何修复未捕获的错误:无法使用来自另一个模块或领域的 e“__Schema”
- c# - WPF:用户干预后获取滑块值