Kotlin Koans关于HTML构建器的问题

Kotlin Koans关于HTML构建器的问题,kotlin,Kotlin,我目前正在进行Kotlin Koans练习,我有一个关于html.kt文件中第17到22行的问题 内容如下: fun <T : Tag> T.set(name: String, value: String?): T { if (value != null) { attributes.add(Attribute(name, value)) } return this } 感谢您在这方面的帮助。通常在您使用链接机制时,这会非常有用。泛型版本返回输

我目前正在进行Kotlin Koans练习,我有一个关于html.kt文件中第17到22行的问题

内容如下:

fun <T : Tag> T.set(name: String, value: String?): T {
    if (value != null) {
        attributes.add(Attribute(name, value))
    }
    return this
}

感谢您在这方面的帮助。

通常在您使用链接机制时,这会非常有用。泛型版本返回输入类型,因此如果输入表标记,也将返回表标记。保留此类型信息允许您调用表中可用的所有方法,而不仅仅是标记。如果您只是返回标记,编译器无法知道您正在处理的标记的子类型,如果您想对实例执行任何特定于表的操作,则必须强制转换。感谢Roland,这很有意义!通常,在使用链接机制时,这会变得很有用。泛型版本返回输入类型,因此如果输入表标记,也将返回表标记。保留此类型信息允许您调用表中可用的所有方法,而不仅仅是标记。如果您只是返回标记,编译器无法知道您正在处理的标记的子类型,如果您想对实例执行任何特定于表的操作,则必须强制转换。感谢Roland,这很有意义!
fun Tag.set(name: String, value: String?): Tag {
    if (value != null) {
        attributes.add(Attribute(name, value))
    }
    return this
}