代碼似乎微不足道,但我不會在返回值理解一兩件事:斯卡拉語法查詢,返回類型推斷
trait JdbcTemplate {
def query(psc: PreparedStatementCreator,
rowMapper: RowMapper): List[_]
}
究竟是什麼意思List[_]
這裏?不會使用List[Any]
意味着同樣的事情?我在哪裏可以閱讀差異?
代碼似乎微不足道,但我不會在返回值理解一兩件事:斯卡拉語法查詢,返回類型推斷
trait JdbcTemplate {
def query(psc: PreparedStatementCreator,
rowMapper: RowMapper): List[_]
}
究竟是什麼意思List[_]
這裏?不會使用List[Any]
意味着同樣的事情?我在哪裏可以閱讀差異?
鑑於_
意味着你不關心類型和Any
is supertype of everything,兩者都是相同的。
Any
是一種特定的,已知的(儘管完全包含)類型。將下劃線用作類型參數是所謂的「存在類型」的更爲繁瑣和更一般的語法的簡寫。存在類型是非特定的:他們說至少有一種類型可以到這裏。它們是通用量化的對偶,是對更常用的無界類型參數的解釋。例如,def method[T](t: T) ...
。在這個結構中,T
可以綁定到任何類型,但是在實例化該類型的每個地方(每次發生該方法的調用),它都綁定到特定類型。