草庐IT

Kotlin-script

全部标签

java - Kotlin 中的通用转换

我有以下类和接口(interface):publicinterfaceActivityComponent{voidinject(Tactivity);}publicinterfaceMyActivityComponentextendsActivityComponent{}publicabstractclassDaggerActivityextendsActivity{abstractActivityComponentgetComponent(Contextcontext);@OverrideprotectedvoidonCreate(BundlesavedInstanceState){

abstract-syntax-tree - 如何获得 Kotlin AST?

我有一个带有Kotlin源代码的字符串。如何在运行时编译它并获取抽象语法树和类型信息以进行分析? 最佳答案 我对Kotlin编译器进行了一些调查。在我的GitHubrepo上可以看到一些获得AST的概念证明。.这只是一个草图,但可能会有所帮助:classKotlinScriptParser{companionobject{privatevalLOG=Logger.getLogger(KotlinScriptParser.javaClass.name)privatevalmessageCollector=object:MessageC

kotlin - 有没有办法在 Kotlin 中构造带有初始化函数的 HashSet?

从FacebookHackerCup's2016中的文件中读取星星BoomerangConstelations问题,可以定义如下扩展函数:funBufferedReader.readStars(n:Int):Set{returnArray(n){val(l1,l2)=readLine().split("").map{it.toInt()}Star(l1,l2)}.toHashSet()}代码是紧凑的,但值首先被读入数组,然后转换为HashSet。有没有办法直接初始化一个n大小的HashSet和Kotlin中的初始化函数?更新:标准Kotlin库中有现有方法吗?

kotlin - 添加抽象私有(private) getter 和公共(public) setter 的正确方法是什么?

我有一个接口(interface),我想要一个可以在类内部修改但不能在外部修改的属性。我不能使用val因为它需要是可变的,并且var关键字不能具有指定的私有(private)setter,因为它在接口(interface)中。在Java中我会这样做:publicgetMyProperty();我可以在kotlin中使用相同的方法,直接编写getter函数,但这似乎不像kotlin的方法。有没有更好的方法来达到同样的效果?fungetMyProperty() 最佳答案 在Kotlin中,你实际上可以用varoverrideval,所以

android - 如何用 kotlin 1.1.0 kotlinx-coroutines-core lib 的特性替换 Anko 的 doAsync、uiThread?

我有一些类似的代码:doAsync{...uiThread{...}}如何用kotlinx-coroutines-corelib中的新内容替换doAsync和uiThread? 最佳答案 协程库0.26版更新:UI已重命名为Main。0.26的完整工作示例:async(CommonPool){...withContext(Main){...}}您不需要从这里进一步阅读,我将把它留给对这个解决方案的发展感兴趣的人。协程库0.20版更新:run现在已弃用,您应该改用withContext。0.20的完整工作示例:async(Common

android - 在 Kotlin 中使用 Handler 编写计时器

我正在尝试在Kotlin中实现一个Android计时器,它将在定义的时间间隔内触发一个事件。我不想使用TimerTask,因为它有记录的弱点(seehere),尽管可能有其他方法可以做到这一点,但我想在延迟后的循环中使用Handler/Runnable。在Java中这是可能的,因为Runnable可以在初始化程序中引用它自己,但是在Kotlin中这似乎是不可能的:privatefunstartBoutiqueRefreshTimer(delayMs:Long){valhandler=Handler()valrunnable=Runnable(){EventManager.post(Bo

spring - Kotlin 协程和 Spring Framework 5 react 类型

Kotlin协程允许通过返回Deferred值来执行非阻塞代码。这对于在使用阻塞方法(例如来自库)时生成非阻塞代码非常有用。Spring5允许在框架中使用Mono和Flux。我看到的最大兴趣是能够序列化这两种类型的实例,并在有人调用Controller端点时将其作为响应发送回。Spring5的一大亮点是对Kotlin的特定支持(路由器、bean声明等),但我找不到有关Kotlin协程和Spring5react类型之间可能交互的信息。有什么方法可以结合这些功能的优点吗?将Deferred转换为Mono/Flux?有一个Deferred作为SpringController方法的响应类型?如

kotlin - Kotlin 的名字是什么!!运算符(operator)

在与其他开发人员对话时,我如何称呼!!运算符?在Kotlin中,?:称为Elvis运算符这些来源没有说明!!的名称是什么:http://kotlinlang.org/docs/reference/null-safety.html#the--operatorhttp://kotlinlang.org/docs/reference/keyword-reference.html网上看,!!的总称是doublebang。即使swift的!运算符被称为forcedunwrapping我是否对Kotlin使用相同的操作(注意:swift中的!类似于Kotlin的!!.)我在寻找什么:一个我可以口头

Kotlin 有 array.indexOf 但我无法弄清楚如何做 array.indexOfBy { lambda }

Kotlin有array.indexOf(item)但我不知道如何做array.indexOfBy{lambda}。它不存在吗?我可以find一个项目,但我不能同时获得它的索引。我是否缺少标准库中的函数?我可以创建一个带有循环的函数,该循环检查项目并在找到目标时返回。像这样:funindexOfBy(items:Array,predicate:(T)->Boolean):Int{for(iinitems.indices){//or(iin0..items.size-1)if(predicate(items[i])){returni}}return-1}然后我尝试使用forEach使其功

arrays - Kotlin 和详细数组实例化

假设我有经过4个顶点的路径。在进行快速原型(prototype)设计时,我会在java中将其定义为double[][]path={{1.0,2.0},{1.0,3.0},{3.0,4.0},{8.0,9.0}}在Kotlin中使用arrayOf和doubleArrayOf函数将是相同的代码valpath=arrayOf(doubleArrayOf(1.0,2.0),doubleArrayOf(1.0,2.0),doubleArrayOf(1.0,3.0),doubleArrayOf(8.0,9.0))感觉有点冗长。有没有Kotlin的方法来解决这个问题?编辑:用例是在“类似REPL”的