这个问题在这里已经有了答案:Howtowriteternaryconditionaloperator?(33个答案)关闭6年前。所以在java中我们有三元运算符(?),它有时对简化if-else内联计算的某些值很有用。例如:myAdapter.setAdapterItems(textToSearch.length==0?noteList:noteList.sublist(0,length-5))我知道kotlin中的等价物是:myAdapter.setAdapterItems(if(textToSearch.length==0)noteListelsenoteList.sublist(
我有一些代码:directoryChooser.title="Selectthedirectory"valfile=directoryChooser.showDialog(null)if(file!=null){varfiles=Files.list(file.toPath()).filter{f->f.fileName.endsWith("zip")&&f.fileName.endsWith("ZIP")&&(f.fileName.startsWith("1207")||f.fileName.startsWith("4407")||f.fileName.startsWith("150
我想知道处理这种情况的最佳方法是什么classPerson(varname:String?=null,varage:Int?=null){funtest(){if(name!=null&&age!=null)doSth(name,age)//smartcastimposible}fundoSth(someValue:String,someValue2:Int){}}调用doSth方法并确保name和age为ntnull的最简单方法是什么?我正在寻找一些简单的东西,比如我会简单地使用let的可变场景name?.let{doSth(it)} 最佳答案
我有一个WebView。我想打电话publicvoidevaluateJavascript(Stringscript,ValueCallbackresultCallback)这个方法。这里是ValueCallback接口(interface):publicinterfaceValueCallback{/***Invokedwhenthevalueisavailable.*@paramvalueThevalue.*/publicvoidonReceiveValue(Tvalue);};这是我的kotlin代码:webView.evaluateJavascript("a",ValueCal
我正在考虑一个允许Map的函数。对象被视为Map通过应用单个函数进行类型推断。我对Kotlin中的转换函数非常陌生,并尝试了各种filter和filterValuesfilterNot在map上像这样:valinput=mapOf(Pair("first",null))valfiltered:Map=input.filter{it.value!=null}其中任何一个都无法编译input.filterValues{it!=null}input.filterNot{it.value==null}input.filterNot{it.valueisNothing}我似乎能得到的最接近的是应
在Kotlin中,标题和正文都是可选的;如果类没有主体,可以省略花括号。所以我们可以定义类,classEmpty这种类有什么用? 最佳答案 您可以将它用于一些自定义异常:classEmpty:Exception()或作为markerinterface:interfaceEmpty或作为dataclass:dataclassEmpty(vals:String)或作为markerannotation:annotationclassEmpty~这很好post阅读。 关于Kotlin-没有bod
我在Kotlin中的Math类中添加了一个函数,但我无法使用它,我之前使用MutableList做过这个,它可以工作,但我不能用数学类。funMath.divideWithSubtract(num1:Int,num2:Int)=Math.exp(Math.log(num1.toDouble()))-Math.exp(Math.log(num2.toDouble())) 最佳答案 您不能在静态级别上在Math上使用此扩展,因为扩展仅适用于实例。edit:由于Math无法实例化,因此您将无法在其上使用扩展。如果您真的希望将该方法作为扩展
在Kotlin中,我有两个列表:valx:List=listOf(1,2,3,4,5,6)valy:List=listOf(2,3,4,5,6,7)我如何获得:valz:List=3,5,7,9,11,13不使用循环? 最佳答案 假设两个列表具有相同的大小:使用zipvalsum=x.zip(y){xv,yv->xv+yv}使用简单的map和mapIndexedvalsum=(0untilx.size).map{x[it]+y[it]}//orvalsum=x.mapIndexed{index,xv->xv+y[index]}当大小
我想在多个类中使用这个函数:funT?.ifNull(function:(T?,s:String)->Unit){}我怎样才能做到这一点?这就是我想使用它的方式:classA{funT?.ifNull(function:(T?,s:String)->Unit){}}classB{constructor(){vala=A()//Iwanttousethefunctionhere}} 最佳答案 如果您将扩展函数定义为A类的成员,则该扩展函数只能在A的上下文中使用。这意味着,您当然可以直接在A中使用它。但是,从另一个类B来看,它不是直接可
我从Kotlin开始,但遇到了一个问题。我有三个常量(我们称它们为VAL_A、VAL_B和VAL_C),我正在做这个赋值:varvariable=if(value我想使用whenblock而不是ifelse,但我不知道如何处理valueVAR_C。谢谢你,对不起我的英语! 最佳答案 您可能正在寻找的理想语法是when(value){valueAvalueBvalueCelse->valueD}很遗憾,这是不可能的,因为comparisonoperatorsareoperatoroverloads对于需要接收器的功能:value与相同