参数类型有"T =",这是什么意思

 上帝认我做干爹 发布于 2023-01-16 12:44

在spark JdbcRDD scala中,它具有以下代码.它有一个像参数

mapRow: (ResultSet) => T = JdbcRDD.resultSetToObjectArray _

那个参数中"T ="的含义是什么?为什么不呢

mapRow: (ResultSet) => JdbcRDD.resultSetToObjectArray _

代码是:

class JdbcRDD[T: ClassTag](
    sc: SparkContext,
    getConnection: () => Connection,
    sql: String,
    lowerBound: Long,
    upperBound: Long,
    numPartitions: Int,
    mapRow: (ResultSet) => T = JdbcRDD.resultSetToObjectArray _)

object JdbcRDD {
  def resultSetToObjectArray(rs: ResultSet) = {
    Array.tabulate[Object](rs.getMetaData.getColumnCount)(i => rs.getObject(i + 1))
  }
}

Patryk Ćwiek.. 5

整个(ResultSet) => T部分是参数的类型.这意味着,mapRow参数是从一个函数ResultSetT.

在您的示例中,它是一个具有默认值的参数,类似于

def foo(justAnInt : Int = 4) = ???

这是=参数列表中的后续部分.

所以,parameterName : type = defaultVal正如您可能注意到的,它是直接的:

mapRow : (ResultSet) => T = ...

在普通的话,该参数是从一个函数ResultSetT与默认值JdbcRDD.resultSetToObjectArray转换成函数方法(因此结尾下划线).

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有