草庐IT

Kotlin-script

全部标签

kotlin - 如何将 Kotlin 代码引用从函数更改为 intellij 插件中的字段?

我正在编写一个intellij插件,我正在重构一个类,将它的getter(例如,funname():String)更改为字段(例如,valname:String)。但是,我不知道如何最好地更新相应的PsiReference实例。Kotlin调用者需要在不带括号的情况下从myObj.name()更改为myObj.name。目前,我正在做以下事情:ReferencesSearch.search(function).findAll().forEach{valnextSibling=it.element.nextSiblingif((nextSiblingas?KtValueArgumentL

android - 将 Android 项目转换为使用 Gradle Script Kotlin

我想使用GradleScriptKotlin将我的Android项目中的build.gradle文件从Groovy转换为Kotlin.最好我喜欢Kotlin中的所有这些,但如果有一些限制,那么尽可能多。假设我只有一个空项目,它是从AndroidStudio“新应用程序”模板(minSdkVersion15,如果重要的话,使用AppCompat)新创建的。我需要采取哪些步骤才能将此类项目转换为GradleScriptKotlin。我希望这对我(以及其他所有人)来说是一个很好的起点,我可以自己处理转换任何自定义逻辑。 最佳答案 已经有一

android - 将 Android 项目转换为使用 Gradle Script Kotlin

我想使用GradleScriptKotlin将我的Android项目中的build.gradle文件从Groovy转换为Kotlin.最好我喜欢Kotlin中的所有这些,但如果有一些限制,那么尽可能多。假设我只有一个空项目,它是从AndroidStudio“新应用程序”模板(minSdkVersion15,如果重要的话,使用AppCompat)新创建的。我需要采取哪些步骤才能将此类项目转换为GradleScriptKotlin。我希望这对我(以及其他所有人)来说是一个很好的起点,我可以自己处理转换任何自定义逻辑。 最佳答案 已经有一

kotlin - 如何在 Kotlin 中为属性的支持字段设置 JsName?

我在1.0.x中使用了Kotlin不受支持的JavaScript后端,现在正在尝试将我的玩具项目迁移到1.1.x。它是与PouchDB交互的单页Web应用程序的最基本部分。要将数据添加到PouchDB,您需要具有特定属性_id和_rev的JavaScript对象。它们还需要不有任何其他以_开头的属性,因为它们是由PouchDB保留的。现在,如果我创建一个这样的类,我可以将实例发送到PouchDB。classPouchDoc(var_id:String){var_rev:String?=null}但是,如果我做任何事情来使属性虚拟化——让它们覆盖一个接口(interface),或者让类打

kotlin - 如何在 Kotlin 中为属性的支持字段设置 JsName?

我在1.0.x中使用了Kotlin不受支持的JavaScript后端,现在正在尝试将我的玩具项目迁移到1.1.x。它是与PouchDB交互的单页Web应用程序的最基本部分。要将数据添加到PouchDB,您需要具有特定属性_id和_rev的JavaScript对象。它们还需要不有任何其他以_开头的属性,因为它们是由PouchDB保留的。现在,如果我创建一个这样的类,我可以将实例发送到PouchDB。classPouchDoc(var_id:String){var_rev:String?=null}但是,如果我做任何事情来使属性虚拟化——让它们覆盖一个接口(interface),或者让类打

kotlin - 如何通过改造阻塞客户端和协程实现有限调用

我有以下代码:valcontext=newFixedThreadPoolContext(nThreads=10,name="myThreadPool")valtotal=1_000_000//canbeothernumberaswellvalmaxLimit=1_000returnrunBlocking{(0..totalstepmaxLimit).map{async(context){valoffset=itvallimit=it+maxLimitblockingHttpCall(offset,limit)}}.flatMap{it.await()}.associateBy{...}

kotlin - 如何通过改造阻塞客户端和协程实现有限调用

我有以下代码:valcontext=newFixedThreadPoolContext(nThreads=10,name="myThreadPool")valtotal=1_000_000//canbeothernumberaswellvalmaxLimit=1_000returnrunBlocking{(0..totalstepmaxLimit).map{async(context){valoffset=itvallimit=it+maxLimitblockingHttpCall(offset,limit)}}.flatMap{it.await()}.associateBy{...}

reflection - Kotlin 获取字段注释始终为空

我有以下Kotlin注释@Target(AnnotationTarget.FIELD,AnnotationTarget.PROPERTY_GETTER)@Retention(AnnotationRetention.RUNTIME)annotationclassField(valvalue:String)以及下面的测试代码classTestObject(@field:Field("id")valid:Long){@field:Field("string")valstring="Helloworld"@get:Field("prop")valpropget()=string}classAn

reflection - Kotlin 获取字段注释始终为空

我有以下Kotlin注释@Target(AnnotationTarget.FIELD,AnnotationTarget.PROPERTY_GETTER)@Retention(AnnotationRetention.RUNTIME)annotationclassField(valvalue:String)以及下面的测试代码classTestObject(@field:Field("id")valid:Long){@field:Field("string")valstring="Helloworld"@get:Field("prop")valpropget()=string}classAn

kotlin - 为什么编译器认为这个 if 语句是一个表达式?

我有这种方法可以比较已排序的列表并告诉您列表2中缺少列表1中的哪些项目,反之亦然,在O(N)时间内:fun>compareSortedLists(list1:Iterable,list2:Iterable,onlyInList1:MutableCollection,onlyInList2:MutableCollection){valit1=PeekingIterator(list1.iterator())valit2=PeekingIterator(list2.iterator())while(it1.hasNext()&&it2.hasNext()){valcomp=it1.peek