以下代码无法编译:

var next: (A, A) = (null, n) 
错误:
error: type mismatch; 
found   : Null(null) 
required: A 
var next: (A, A) = (null, n) 
还有 var next: (A, A) = ((null: A), n)失败并出现相同的错误。
不知何故,我认为它应该编译。
我目前正在使用以下似乎有效的代码:
var next: (A, A) = (null.asInstanceOf[A], n) 
为什么不起作用?错误或功能?
编辑
看完didiers的回答问题就很明显了。我错过了 null只能分配给 AnyRef类型。对于我的问题,我选择制作元组 (n,n)并有一个 bool 标志是否第一个条目有效。取决于应用 Option可能是更好的解决方案。

请您参考如下方法:

可能是因为您的 A 参数类型不能保证为 <: AnyRef。如果您打算传递 null,则应该这样做。如果是这样,我会说功能

编辑 .请参阅下面 Daniel 的评论,解决方案是 >: Null,请参阅 AgileSteel 答案。


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!