class Example
fun main(){
val example: Example = Example()
// what function i am calling is it fun Example.extensionFun() ?
// Or is it Example.extensionFun(string: String) ?
example.extensionFun()
}
// first extension function
fun Example.extensionFun(){
println("Hey i'm first extension function")
}
// second extension function
fun Example.extensionFun(testArgument: String = "test argument "){ // argument just to change the function signature
println("Hey i'm second extension function ")
}
В приведенном выше примере я создал две функции расширения с тем же именем, но с другой подписью. Когда я пытаюсь позвонить ->
example.extensionFun()
, тогда IDE просто вызывает "fun Example.extensionFun ()"
, но даже если я пытаюсь позвонить
fun Example.extensionFun(testArgument: String ="test argument")
, используя всплывающее окно завершения кода и выбирая вторую функцию расширения, он снова вызывает
fun Example.extensionFun()
, и, таким образом, мне не удалось вызвать вторая функция расширения, которая передает другое значение для testArgumet (аргумент). например,
example.extensionFun("different value")
, но во многих случаях мы не хотим изменять значение по умолчанию параметра функции при его вызове.
Я думаю, что нашел ошибку но, пожалуйста, поделитесь своим мнением