草庐IT

Kotlin-script

全部标签

kotlin - kotlin的运算符重载中plus和plusAssign有什么区别?

我知道plus和plusAssign有一些区别,后者不能返回任何东西,但是我发现plus可以实现plusAssign所做的事情。一个Point类重载plus并返回一个新的Point。dataclassPoint(varx:Int,vary:Int){operatorfunplus(other:Point):Point{returnPoint(x+other.x,y+other.y)}}Point类重载plusAssign但不返回新的Point。dataclassPoint(varx:Int,vary:Int){operatorfunplusAssign(other:Point):Uni

kotlin - 为什么我不能将匿名类的 { 放在 Kotlin 的新行中?

这个问题可能很愚蠢,但是……为什么?我个人喜欢Microsoft风格,其中{与匹配的}在同一列。在我使用过的所有语言中,{放在哪里都没有关系。但在Kotlin中,只有这样才有效。image_view.viewTreeObserver.addOnGlobalLayoutListener{};这会导致错误。image_view.viewTreeObserver.addOnGlobalLayoutListener{}; 最佳答案 https://kotlinlang.org/docs/reference/grammar.html#semi

kotlin - `var allByDefault: Int ?`会导致错误吗?

在该部分:PropertiesandFields对kotlin的引用,写了下面的例子:varallByDefault:Int?//error:explicitinitializerrequired,defaultgetterandsetterimplied但是,我测试了代码,编译运行没有错误。这是我的代码”funmain(args:Array){varallByDefault:Int?}那么文档为什么会这样写:error:explicitinitializerrequired,defaultgetterandsetterimplied我已经在谷歌上搜索了帮助,但没有找到任何可以帮助我的

kotlin - 如何在 Kotlin 中对整数数组的每个项目求平方

我正在尝试学习Kotlin。我有一个数组:[1,2,3,4,5]如何打印数组中每个数字的平方?例如在Python中我可以这样做:array=[1,2,3,4,5]print("".join(str(n*n)forninarray))但我不确定如何在Kotlin中执行此操作 最佳答案 您可以使用map:valarray=arrayOf(1,2,3,4,5)println(array.map{n:Int->n*n})输出:[1,4,9,16,25] 关于kotlin-如何在Kotlin中对整

android - 在 gradle android library kotlin 项目中禁用 META-INF/* 生成

美好的一天。我已经编写了一个kotlinandroid库并将其上传到bintray。但是当我尝试在某些项目中使用它(通过gradlecompile)时,它无法构建并出现以下错误:>com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException:DuplicatefilescopiedinAPKMETA-INF/library_release.kotlin_moduleFile1:C:\Users\Charlie\.android\build-c

spring - 当被 Spring 代理类访问时,Kotlin 实例变量为空

我有一个由Spring代理的服务类,如下所示:@Service@TransactionalopenclassMyService{...}如果我删除open修饰符,Spring会提示它需要代理类来应用@Transactional注释调整。但是,这会导致在代理服务上调用函数时出现问题,该函数会尝试访问变量:@Service@TransactionalopenclassMyService{protectedvalinternalVariable=...fundoWork(){internalVariable.execute()//NullPointerException}}internalV

android - Kotlin setOnclickListener

在java中,我曾经只为void方法编写return...但kotlin似乎不允许只返回,而是使用return@methodname?谁能解释这是什么以及它如何增加值(value)?bAddLine.setOnClickListener{valselectedSeries=getSelectedSeries()if(selectedSeries.isEmpty()){Toast.makeText(this,getString(R.string.toast_channel_mandatory),Toast.LENGTH_LONG).show()return@setOnClickListe

reflection - 如何通过反射使用 Kotlin 对象

假设我需要通过反射在Kotlin对象O中设置由字符串给定的属性A。如果O是一个类,我可以做这样的事情(忽略它没有意义):funsetValue(ownerClassName:String,fieldName:String,value:Any){valenclosingClass=Class.forName(ownerClassName).newInstance()valenclosingClassField=enclosingClass.javaClass.getDeclaredField(fieldName)enclosingClassField.isAccessible=truee

android - Kotlin 在 fragment 中显示类型不匹配

我有一个fragment,里面有RecyclerAdapter。我想在onCreateView方法中初始化适配器,但它在此语句中抛出"Typemismatch.Required:Context,Found:FragmentActivity"错误我不知道为什么第一个显示这个错误,而第二个没有包含编译时错误。显示错误recyclerView!!.adapter=RestaurantMenuAdapter(activity)没有显示错误recyclerView!!.layoutManager=LinearLayoutManager(activity)fragment.ktoverridefu

kotlin - 两个列表的所有可能组合

鉴于我有两个列表:valints=listOf(0,1,2)valstrings=listOf("a","b","c")我想要它们元素的所有可能组合0a、1a、2a、0b等有没有比这样更优雅的方式:ints.forEach{int->strings.forEach{string->println("$int$string")}} 最佳答案 您可以基于flatMapstdlib函数编写这些扩展函数://ExtensionsfunCollection.cartesianProduct(other:Iterable):List>{retu