草庐IT

Kotlin-script

全部标签

kotlin - 防止 Kotlin 强制 Java 查看通配符类型

这很好用:classWrapped(valvalue:T)openclassWrapper{funwrap(map:T):Wrapped=Wrapped(map)}classWrapper2:Wrapper>()valwrapped:Wrapped>=Wrapper2().wrap(mapOf())但是,当我尝试从Java访问Wrapper2.wrap时,map返回通配符类型:MaptoWrap=newHashMap();Wrapped>result;result=newWrapper>().wrap(toWrap);//okresult=newWrapper2().wrap(toWr

kotlin - .indices 在 kotlin 中的含义是什么?

我想知道.indices是如何工作的,这两个for循环之间的主要区别是什么。for(arginargs)println(arg)或for(iinargs.indices)println(args[i])withIndex()函数有什么用for((index,value)inarray.withIndex()){println("theelementat$indexis$value")} 最佳答案 这些只是遍历数组的不同方法,具体取决于您需要在for循环的主体中访问的内容:当前元素(第一种情况)、当前索引(第二种情况),或两者兼有(第

kotlin - .indices 在 kotlin 中的含义是什么?

我想知道.indices是如何工作的,这两个for循环之间的主要区别是什么。for(arginargs)println(arg)或for(iinargs.indices)println(args[i])withIndex()函数有什么用for((index,value)inarray.withIndex()){println("theelementat$indexis$value")} 最佳答案 这些只是遍历数组的不同方法,具体取决于您需要在for循环的主体中访问的内容:当前元素(第一种情况)、当前索引(第二种情况),或两者兼有(第

constructor - 在 Kotlin 中匿名实现接口(interface)导致 "has no constructors"错误

我正在尝试在Android中使用SurfaceView来保存相机预览。文档告诉我,我需要在表面支架的surfaceCreated回调中调用startPreview。我正在尝试像这样设置回调this.surface!!.holder!!.addCallback(SurfaceHolder.Callback(){funsurfaceChanged(holder:SurfaceHolder,format:Int,width:Int,height:Int){}funsurfaceCreated(holder:SurfaceHolder){}funsurfaceDestroyed(holder:

constructor - 在 Kotlin 中匿名实现接口(interface)导致 "has no constructors"错误

我正在尝试在Android中使用SurfaceView来保存相机预览。文档告诉我,我需要在表面支架的surfaceCreated回调中调用startPreview。我正在尝试像这样设置回调this.surface!!.holder!!.addCallback(SurfaceHolder.Callback(){funsurfaceChanged(holder:SurfaceHolder,format:Int,width:Int,height:Int){}funsurfaceCreated(holder:SurfaceHolder){}funsurfaceDestroyed(holder:

android - 无法访问 BaseColumns 在 Kotlin 中提供了 _ID 属性

我正在定义我的用户SQLite数据库表,为此,我创建了以下UserContract和UserEntry类:classUserContractprivateconstructor(){classUserEntryprivateconstructor():BaseColumns{companionobject{valTABLE_NAME="users"valCOLUMN_DISPLAY_NAME="display_name"valCOLUMN_EMAIL="email"//...}}}我面临的问题是我无法访问BaseColums实现提供的_ID属性:valcolumnDisplayName

android - 无法访问 BaseColumns 在 Kotlin 中提供了 _ID 属性

我正在定义我的用户SQLite数据库表,为此,我创建了以下UserContract和UserEntry类:classUserContractprivateconstructor(){classUserEntryprivateconstructor():BaseColumns{companionobject{valTABLE_NAME="users"valCOLUMN_DISPLAY_NAME="display_name"valCOLUMN_EMAIL="email"//...}}}我面临的问题是我无法访问BaseColums实现提供的_ID属性:valcolumnDisplayName

Kotlin 数字文字

我注意到我可以像这样将double值转换为整数。vararray=kotlin.arrayOfNulls(10)for(iinarray.indices){array[i]=(Math.random().toInt())}如果Math.random()返回一个double值,double值怎么会有一个名为toInt()的方法呢?数值也是对象吗? 最佳答案 是的,数字类型的实例是Kotlin对象。引自Kotlindocs:InKotlin,everythingisanobjectinthesensethatwecancallmembe

Kotlin 数字文字

我注意到我可以像这样将double值转换为整数。vararray=kotlin.arrayOfNulls(10)for(iinarray.indices){array[i]=(Math.random().toInt())}如果Math.random()返回一个double值,double值怎么会有一个名为toInt()的方法呢?数值也是对象吗? 最佳答案 是的,数字类型的实例是Kotlin对象。引自Kotlindocs:InKotlin,everythingisanobjectinthesensethatwecancallmembe

java - 如何创建一个固定大小的 IntArray 并稍后在 Kotlin 中初始化该数组?

我想不出在Kotlin中向数组添加值的方法。我想从用户那里获取值并将它们添加到数组中。valarr=arrayOf()或vararr=intArrayOf()在Java中我会这样做:Scannerob=newScanner(System.in);intarr[]=newint[5];for(inti=0;i如何在Kotlin中做同样的事情? 最佳答案 您需要escapeSystem类的静态字段in带有反引号(`),因为in是Kotlin中的关键字。例如:valob=Scanner(System.`in`)你可以创建一个固定大小的in