kotlin - 创建一个包含字符串的单行函数有什么好处,而仅通过将字符串分配给变量是无法实现的?
问题描述
在 Kotlin 中,我了解可以将字符串直接分配给函数,例如:
fun foo(): String = "Hello World"
但是您也可以直接将 String 分配给变量:
var foobar: String = "Hello Word"
我的问题是,当你可以创建一个变量时,你为什么还要创建一个函数?我看不出这个功能存在的意义。
解决方案
关于有趣的事情
fun foo(): String = "Hello World"
是它使用的是表达式语法,并且相当于:
fun foo(): String {
return "Hello World"
}
虽然只返回一个常量不是很有用,但使用表达式语法,避免{block}
andreturn
语句可以在整个函数可以用一个表达式表示的情况下允许更简洁的函数定义。
例如,如果foo()
是一个类的方法,你可以使用该类的属性打招呼:
class Hello(var what : String = "World") {
fun foo(): String = "Hello, $what!"
}
fun main() {
val hello = Hello()
println(hello.foo())
hello.what = "Universe"
println(hello.foo())
}
这打印:
Hello, World!
Hello, Universe!
推荐阅读
- python - opcua - 设置采样率后未获取队列中的所有值
- swift - 验证到期日期
- python - Python:根据第二个数据帧中的值对数据帧进行排序
- ionic-react - 离子+反应的后端?
- python - Pandas dataframe.drop 随机删除行
- mysql - 多个表上的查询计数/总和
- visual-studio-code - 即使在我的 Visual Studio 代码中启用了 Control + s 也无法正常工作
- c# - 在 C# 中,DateTimeOffset 值的 DateTime 格式是什么:“2019-01-31T17:32:00-05:00”?
- python - python - 如何仅使用for循环将包含两种不同类型数据的日期集放入python中的两个不同列表中?
- multithreading - 如何使用 futex 在两个独立程序之间进行同步?