kotlin重载

来源:3-2 函数(function)

慕妹2978617

2019-11-13

fun main(args: Array): Unit {
println(sum(args[0].toInt(), args[1].toInt()))

}
fun sum(aInt1: Int, aInt2: Int): Int {
return aInt1 + aInt2
}

val sum = fun(aInt1: Int, aInt2: Int): Int {
println("$aInt1 + $aInt2 = ${sum(aInt1, aInt2)}")
return aInt1 + aInt2
}

  1. 我如何区分我想调用的是常量方法 还是 fun
  2. 输入的结果和我预想的不一样 编译器显示调用的是方法 这是为什么
  3. kotlin是没有重载的嘛
写回答

1回答

bennyhuo

2019-11-13

  1. sum(0,1) 是函数调用,优先绑定到了函数名上,但如果你当做变量使用的话,例如 sum.invoke(1,2) 就是变量的访问了

  2. 这个编译器说了算。

  3. 这也不是重载。重载要求名称相同且签名不一样,这里的例子签名相同且名称不同(注意第二个是一个匿名函数,没有名字)所以重载的两个条件都不满足哈。

0
0

Android首选开发语言Kotlin入门与进阶

Google I/O大会钦定Android一级开发语言,现在不学,等待何时

3122 学习 · 387 问题

查看课程