在Kotlin中,函数可以有多个参数,记住参数的顺序或者仅靠位置理解他们的作用可能会很具有挑战性,特别是对于接受多个参数或者有相同类型参数的函数。命名参数通过允许开发者指定传递给函数的每个参数的名称来解决这个问题。
有一个用来展示用户信息的函数:
fun displayUserInfo(id: Int, name: String, email: String) {
println("ID: $id, Name: $name, Email: $email")
}
如果不使用命名参数,需要按照顺序传递参数给函数:
displayUserInfo(1, "Raphael De Lio", "raphael@example.com")
使用命名参数,可以按任意顺序传递参数给函数:
displayUserInfo(id = 1, name = "Raphael De Lio", email = "raphael@example.com")
displayUserInfo(name = "Raphael De Lio", email = "raphael@example.com", id = 1)
默认参数(默认值)
默认参数允许开发者为函数参数指定默认值。当在函数调用中省略了相应的参数时,这些默认值会被使用。
这个特性简化了函数的使用,允许调用者省略每个参数,尤其是当大部分会传递常见的参数值时。
data class User(
val name: String,
val age: Int = 0, // 如果未指定,则假定年龄为0
val email: String = "" // 如果未指定,则假定电子邮件为空字符串
)
val user=User(name = "Raphael De Lio", id = 30, email = "raphael.delio@example.com")
Log.e(TAG,"${user.toString()}")
//User(id=30, name=Raphael De Lio, email=raphael.delio@example.com)
val user2=User(name = "Raphael De Lio") //必须至少得传递一个参数,其他2个参数可以不传,使用参数值
Log.e(TAG,"${user2.toString()}")
//User(id=0, name=Raphael De Lio, email=)