Javascript 如何在Kotlin的JS接口中使用可选参数调用

Javascript 如何在Kotlin的JS接口中使用可选参数调用,javascript,android,kotlin,web-applications,scripting-bridge,Javascript,Android,Kotlin,Web Applications,Scripting Bridge,我在Kotlin中有一个Javascript桥接方法 @JavascriptInterface fun add(a: Int? = 0, b: Int? = 0): Int { return a + b } 如果我想用默认值调用,如何从web app js调用此方法 android.add(null, null) // OR android.add() // OR android.add(a = 0, b = 0)// OR 或者什么?要使用参数的默认值,未定义的应作为参数传递。可以这样

我在Kotlin中有一个Javascript桥接方法

@JavascriptInterface
fun add(a: Int? = 0, b: Int? = 0): Int {
  return a + b
}
如果我想用默认值调用,如何从web app js调用此方法

android.add(null, null) // OR
android.add() // OR
android.add(a = 0, b = 0)// OR

或者什么?

要使用参数的默认值,未定义的
应作为参数传递。可以这样做:

android.add() // empty arguments means all of them are undefined so defaults are used
android.add(1) // a == 1, b == undefined so the default value (0) is used
android.add(void 0, 2) // a == undefined and its default (0) is used, b == 2

如果没有提供任何值,它将使用默认值,因此android.add()就可以了。@Kobe如果我想为类似于
android.add(b=5)
的东西运行该怎么办?或者仅使用第一个参数,如android.add(1)
?允许吗?谢谢,罗曼。我仍然对android.add(void 0,2)为什么调用方js端提供默认值感到困惑?它已经在本机端定义好了,对吗?你是说android.add(void,2)?如果我没弄错的话,
void 0
只是一个表达式,当
void
不是一个表达式时,它肯定是未定义的。