Function 如何将数据类中的数据传递给函数
我需要使用一个函数来打印数据类中的数据,并在这个网站上阅读了一些其他答案,但我仍然不清楚如何做。谢谢你的帮助Function 如何将数据类中的数据传递给函数,function,class,kotlin,Function,Class,Kotlin,我需要使用一个函数来打印数据类中的数据,并在这个网站上阅读了一些其他答案,但我仍然不清楚如何做。谢谢你的帮助 data class Chemical( val key: String, val name : String, val formula : String ) fun printans(Chemical(q):: data class) { println("Key = $q.key, Name = $q.name Formula = $q.form
data class Chemical(
val key: String,
val name : String,
val formula : String
)
fun printans(Chemical(q):: data class) {
println("Key = $q.key, Name = $q.name Formula = $q.formula")
}
fun main(args: Array<String>) {
val cuso4 = Chemical("001", "Copper(II) sulphate", "CuSO4")
val cacl2 = Chemical("002", "Calcium chloride", "CaCl2")
printans(cuso4)
printans(cacl2)
}
添加大括号并使用
q:Chemical
代替Chemical(q)::data class
fun printans(q: Chemical) {
println("Key = ${q.key}, Name = ${q.name} Formula = ${q.formula}")
}
您的语法错误,因为
Chemical
是一个数据类,您甚至不需要自己构建字符串,它已经为您构建好了:
fun printans(c: Chemical) {
println(it)
}
化学品(键=foo,名称=bar,公式=baz)
因此,您甚至可以简化为println(c)
,而不使用专用函数,因为它只做println
所能做的事情
如果此格式不是您想要的格式,我建议覆盖化学的toString
data class Chemical(/* ... */) {
fun toString(c: Chemical) = "Key = ${c.key}, Name = ${c.name} Formula = ${c.formula}"
}
这样,无论您将其传递到哪里,输出都将始终是您想要的格式,因为println
调用toString
。您可以使用Kotlin扩展功能特性!
像这样:
只要调用它:
val chemical = Chemical("Key", "Name", "Formula")
chemical.printans()
您可以阅读更多关于扩展函数的内容,并将函数声明修复为funprintans(q:Chemical){
Chemical(q)::数据类
无效语法询问前阅读文档始终是一个很好的做法。非常感谢您的提示和有用的回答!我以为我已经尝试了所有可能的语法组合,但错过了一个。再次感谢!printans
和prinntln
似乎不匹配。
fun Chemical.printans(){
println("Key = ${this.key}, Name = ${this.name} Formula = ${this.formula}")
}
val chemical = Chemical("Key", "Name", "Formula")
chemical.printans()