kotlin链接调用中的注释

kotlin链接调用中的注释,kotlin,functional-programming,Kotlin,Functional Programming,因为在编写kotlin代码时,通常需要解释较长的调用链。在此链中添加评论的最佳位置是什么 val map = javaClass.getResourceAsStream("/response.csv") .reader() //commentLocation1 .readLines() .drop(1) // commentLocation2 .map { it.split(",") } .map { // commentLocat

因为在编写kotlin代码时,通常需要解释较长的调用链。在此链中添加评论的最佳位置是什么

val map = javaClass.getResourceAsStream("/response.csv")
    .reader() //commentLocation1
    .readLines()
    .drop(1)
    // commentLocation2
    .map { it.split(",") }
    .map {
        // commentLocation3
        it.first().toInt() to it[2]
    }
    .toMap()

这只是个人喜好,但我不喜欢文档之外的注释,因为这样可以减少在代码上保留过时注释的机会,因此我建议将代码包装到函数中,并提供您认为必要的任何解释:

/**
 * This function does something very useful =)
 */
fun function(){

}

这只是个人喜好,但我不喜欢文档之外的注释,因为这样可以减少在代码上保留过时注释的机会,因此我建议将代码包装到函数中,并提供您认为必要的任何解释:

/**
 * This function does something very useful =)
 */
fun function(){

}

我没有在中找到任何关于此的提示,但我更喜欢commentLocation1和commentLocation3。但请记住,在代码中表达意图的更好方法是添加具有良好名称的函数。因此,如果您觉得有必要添加注释来描述某些映射、筛选等的业务价值,那么最好使用函数的引用,该函数的名称可以解释它。

我在中没有找到任何关于此的提示,但我更喜欢commentLocation1和commentLocation3。但请记住,在代码中表达意图的更好方法是添加具有良好名称的函数。因此,如果你觉得有必要为一些映射、过滤等的商业价值添加评论,最好使用引用函数来解释它。如果将其分解,可以使用变量名添加相当多的自我文档

val responseReader = javaClass.getResourceAsStream("/response.csv").reader()
val linesWithoutHeader = responseReader.readLines().drop(1)
val splitLines = linesWithoutHeader.map{it.split(","))}
val map = splitLines.map(firstAndThirdColumns).toMap()
def firstAndThirdColumns(...

这也有一个优势,给了你一个更精确的错误消息的位置,并且允许你插入类型注释来在中间检查一些东西。当有人在以后维护这个时,他们可能会离开中间变量名,而不是从链的开始重建他们头脑中的整个状态。最糟糕的情况是,如果你仍然觉得你需要一个评论,你可以让它成为一个普通的行评论,看起来不那么尴尬。

一般来说,我认为想在一个链的中间做评论是你把你的链条做得太长的一个标志。如果将其分解,可以使用变量名添加相当多的自我文档

val responseReader = javaClass.getResourceAsStream("/response.csv").reader()
val linesWithoutHeader = responseReader.readLines().drop(1)
val splitLines = linesWithoutHeader.map{it.split(","))}
val map = splitLines.map(firstAndThirdColumns).toMap()
def firstAndThirdColumns(...

这也有一个优势,给了你一个更精确的错误消息的位置,并且允许你插入类型注释来在中间检查一些东西。当有人在以后维护这个时,他们可能会离开中间变量名,而不是从链的开始重建他们头脑中的整个状态。最糟糕的情况是,如果您仍然需要注释,您可以将其设置为常规行注释,看起来不会太尴尬。

我已经查看了kotlin官方文档,在RxJava之类的库中也找不到任何示例。我可能会将代码移动到函数,然后使用函数引用!我已经查看了官方的kotlin文档,也找不到任何关于RxJava之类的库的示例。我可能会将代码移动到函数,然后使用函数引用!