[英]Type mismatch between Any and String in Scala
def foo(x : Array[Any]) = println(x.length);
foo(Array[String]("test", "test"));
此代碼將引發錯誤消息:
:6: error: type mismatch;
found : Array[String]
required: Array[Any]
foo(Array[String]("test", "test"))
Scala中的所有類都直接或間接繼承自Any類。 所以String是Any。 為什么我們不能將Array [String]傳遞給foo方法?
數組的參數類型不變,這意味着String
是Any
,但是Array[String]
不是Array[Any]
。
def foo[T](x: Array[T])
或def foo(x: Array[_])
都可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.