Kotlin基础知识_04-字符串内嵌表达式&函数参数默认值

Kotlin基础知识_04-字符串内嵌表达式&函数参数默认值

1. 字符串内嵌表达式

Kotlin简化了表达式的拼接,如java中的下列写法:

String brand = "Samsung";
double price = 1299.99;
System.out.println("Cellphone(brand=" + brand + ", price=" + price + ")");

在kotlin中可简化为:

val brand = "Samsung"
val price = 1299.99
println("Cellphone(brand=$brand, price=$price)")

如果是表达式,则可以在字串里面嵌入{}这种语法结构,如:

fun main() {
    val dog = Dog(20, "nick")
    println("The dog.name: ${dog.name}, dog.age: ${dog.age}")
}

2. 函数参数默认值

kotlin可以给函数参数指定默认值,这样可以简化java中部分重载函数的写法:

fun showPersonInfo(age: Int = 20, name: String = "ZhangSan", address: String = "Beijing") {
    println("The person name: $name, age: $age, address: $address")
}

fun main() {
    showPersonInfo(20, "Lil", "XiAn")
    showPersonInfo(30, "Bob")
    showPersonInfo(30)
    // 通过键值对的方式传参
    showPersonInfo(name = "ana")
    showPersonInfo(address = "NanJing", name = "Leo")
}

运行:

The person name: Lil, age: 20, address: XiAn
The person name: Bob, age: 30, address: Beijing
The person name: ZhangSan, age: 30, address: Beijing
The person name: ana, age: 20, address: Beijing
The person name: Leo, age: 20, address: NanJing

如上例,可以为每个函数参数均指定一个默认值,这样当调用时若发现指定的参数没有传值,就会使用默认值代替。

main()函数中第五行,只传了一个参数 ana, 这样编译器会默认匹配第一个参数类型 age, 这显然是不对的,因为传入的是String类型, 但第一个参数类型是 Int类型,可以通过 参数名 = 参数值的形式手动告诉编译器传入的参数应该对应到哪一个参数上面。

另外,参数的顺序可以颠倒,比如第6行可以先传入 address, 再传入 name, 不过也要通过键值对的方式指定清楚。

简化次构造函数

函数参数默认值的特性可以最大限度的简化次构造函数,例如,可以在主构造函数中这样写:

class BetStudent(val sno: String = "", val grade: Int = 0, name: String = "", age: Int = 0) :
    Person(name, age) {
}

这样就不需要重载一堆的次构造函数了。即使某个参数值没有写,也可以使用默认的参数值。



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
posted @   夜行过客  阅读(114)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2021-11-02 android: LinearLayout中分隔符妙用 (转)
2021-11-02 音视频技术应用(1)-使用VS2019来编译FFmpeg 环境搭建
2018-11-02 加快android studio 编译速度(已更新至Android Studio 3.3.1)
2018-11-02 解决Installation failed with message Failed to finalize session : INSTALL_FAILED_INVALID_APK的问题
2016-11-02 新浪微博客户端(18)-集成下拉刷新控件UIRefreshControl
点击右上角即可分享
微信分享提示