在Kotlin中,函数重载(function overloading)是一项很常见的功能。当定义多个函数具有相同的名称,但不同的参数列表时,只有与传递给函数的参数数量和类型相匹配的函数才会被调用。因此,如果只调用了第二个函数,可能是因为它的参数列表更符合你的实际需要。
以下是一个包含两个函数的示例,其中第一个函数接受一个整数参数,而第二个函数接受一个字符串参数:
fun printNumber(num: Int) { println("The number is $num") }
fun printNumber(numString: String) { val num = numString.toIntOrNull() if (num != null) { printNumber(num) } else { println("$numString is not a valid number") } }
调用这些函数时,如果你提供了一个整数,则第一个函数将被调用,例如:
printNumber(42) // 结果为 “The number is 42”
如果你提供了一个字符串,它将被解析为数字(如果是有效的数字)并传递给第一个函数,否则第二个函数将打印一条错误消息。例如:
printNumber("123") // 结果为 “The number is 123” printNumber("hello") // 结果为 "hello is not a valid number"
如果只调用了printNumber("hello"),仅会调用第二个函数。