草庐IT

kotlin-stdlib-jdk

全部标签

arrays - Kotlin 中的展平数组

我有一个二维节点数组,我想使用Kotlin数组的flatten函数将其展平为所有节点的单个数组。valnodes=kotlin.Array(width,{width->kotlin.Array(height,{height->Node(width,height)})})然后我尝试在二维数组上调用flatten函数nodes.flatten()但我收到一个错误:Typemismatch:inferredtypeisArray>butArray>wasexpected.我应该这样做吗? 最佳答案 使用更通用的flatMap:nodes.

另一个kt中的kotlin扩展方法访问

我正在考虑在一个文件中为String添加一个global扩展方法,无论我在哪里使用String,我都可以使用这个扩展。但我没能找到这样做的方法...我现在只是将扩展粘贴到各处。A.kt中的扩展:classA{......funString.add1():String{returnthis+"1"}......}并在B.kt中像这样访问:classB{funmain(){......vara=""a.add1()......}}我已经尝试了所有可以添加的方法,例如static和final,但没有任何效果。 最佳答案 确保您的扩展函数是

android - 当所选项目 View 为空时,Kotlin 在 Android 上崩溃

我收到一个错误,当我运行它时应用程序死掉了。这是错误:07-2221:02:19.7853136-3136/?E/dalvikvm:Couldnotfindclass'android.graphics.drawable.RippleDrawable',referencedfrommethodandroid.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering07-2221:02:19.8253136-3136/?E/dalvikvm:Couldnotfindclass'android.widget.ThemedSp

arrays - Kotlin 使用迭代索引过滤 lambda 数组

我想将一个数组过滤成每第n个项目的数组。例如:fungetNth(array:Array,n:Int):Array{valnewList=ArrayList()for(iin0..array.size){if(i%n==0){newList.add(array[i])}}returnnewList.toArray()}有没有一种惯用的方法来做到这一点,例如使用Kotlin的.filter()并且没有A)提供新的ArrayList和B)手动迭代for/in循环? 最佳答案 filterIndexed函数正好适合这种情况:array.f

android - 处理 EditText 上的 Enter 键(Kotlin,Android)

如何在AndroidKotlin语言中处理EditText上的Enter键? 最佳答案 波纹管是上述问题的最简单解决方案editText.setOnKeyListener(View.OnKeyListener{v,keyCode,event->if(keyCode==KeyEvent.KEYCODE_ENTER&&event.action==KeyEvent.ACTION_UP){//PerformCodereturn@OnKeyListenertrue}false}) 关于androi

kotlin - Kotlin 中的 "duplicate in when"是什么?

我写的代码如下:when(month){1or7->arrHoangDao=arrayListOf("Tý","Sửu","Tỵ","Mùi")2or8->arrHoangDao=arrayListOf("Dần","Mão","Mùi","Dậu")3or9->arrHoangDao=arrayListOf("Thìn","Tỵ","Dậu","Hợi")4or10->arrHoangDao=arrayListOf("Ngọ","Mùi","Sửu","Dậu")5or11->arrHoangDao=arrayListOf("Thân","Dậu","Sửu","Mão")/*6or

kotlin - 在 Kotlin 中声明空集合

如何在Kotlin中为mapOf、listOf和setOf声明一个空集合?我已经声明了以下变量:valoccupations=mapOf(Pair("Malcolm","Captain"),Pair("Kaylee","Mechanic"))valshoppingList=listOf("catfish","water","tulips","bluepaint")valfavoriteGenres=setOf("Rock","Classical","Hiphop")我想检查这些集合是否为空。 最佳答案 Iwanttocheckist

kotlin - 如何在 kotlin 中创建重复对象数组?

我知道如何通过创建循环来做到这一点,但我想知道是否有更简单的方法?例如,我想创建一个Point数组,它们都将具有(0,0)或递增x,y通过他们的索引。 最佳答案 Array有一个特殊的构造函数来处理这些事情:/***Createsanewarraywiththespecified[size],whereeachelementiscalculatedbycallingthespecified*[init]function.The[init]functionreturnsanarrayelementgivenitsindex.*/pub

kotlin - `let` 在 Kotlin : how to access the first `let` 中的 `it` 内

我有一个let在另一个里面someMethodCall()?.let{//....//somecodehere//....valresultCall=itsomeMethod2Call()?.let{//...valmyVariable=it+resultCall//...}}是否有可能在第二个let中的Kotlin中访问第一个let的it并避免使用resultCall变量? 最佳答案 it是lambda参数的默认名称。it对于较短的lambda很方便,但您不应该将它用于较长的lambda。对于更长的lambda,通过指定显式参数名

android-studio - 如何在 Android Studio 中更新 Kotlin.Runtime

Windows10、AndroidStudio3.0.1。刚刚启动它并得到“有一个新版本可用,更新?”。我更新了。现在我得到“过时的Kotlin.Runtime.Kotlin运行时版本在多个库中已过时”后跟一个长URL。所以我需要更新Kotlin运行时。我该怎么做? 最佳答案 您可以从AndroidStudio本身更新和安装新的Kotlin插件。看 关于android-studio-如何在AndroidStudio中更新Kotlin.Runtime,我们在StackOverflow上找到