2013-02-08 96 views
1

代碼似乎微不足道,但我不會在返回值理解一兩件事:斯卡拉語法查詢,返回類型推斷

trait JdbcTemplate { 
    def query(psc: PreparedStatementCreator, 
      rowMapper: RowMapper): List[_] 
} 

究竟是什麼意思List[_]這裏?不會使用List[Any]意味着同樣的事情?我在哪裏可以閱讀差異?

回答

2

Any是一種特定的,已知的(儘管完全包含)類型。將下劃線用作類型參數是所謂的「存在類型」的更爲繁瑣和更一般的語法的簡寫。存在類型是非特定的:他們說至少有一種類型可以到這裏。它們是通用量化的對偶,是對更常用的無界類型參數的解釋。例如,def method[T](t: T) ...。在這個結構中,T可以綁定到任何類型,但是在實例化該類型的每個地方(每次發生該方法的調用),它都綁定到特定類型。