2013-02-08 85 views
1

代码似乎微不足道,但我不会在返回值理解一两件事:斯卡拉语法查询,返回类型推断

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

究竟是什么意思List[_]这里?不会使用List[Any]意味着同样的事情?我在哪里可以阅读差异?

回答

2

Any是一种特定的,已知的(尽管完全包含)类型。将下划线用作类型参数是所谓的“存在类型”的更为繁琐和更一般的语法的简写。存在类型是非特定的:他们说至少有一种类型可以到这里。它们是通用量化的对偶,是对更常用的无界类型参数的解释。例如,def method[T](t: T) ...。在这个结构中,T可以绑定到任何类型,但是在实例化该类型的每个地方(每次发生该方法的调用),它都绑定到特定类型。