草庐IT

Kotlin-script

全部标签

android - 使用 Kotlin 的 `let` 的合理情况

在Kotlin中,如果对象(let接收器)不是null,通常使用let来执行代码,作为替代到if!=null检查,如下所示:valnullable:String?="anything"nullable?.let{println(it)}在哪些其他情况下使用let有意义?仅供引用,let是Kotlin标准库的一部分,定义如下:@kotlin.internal.InlineOnlypublicinlinefunT.let(block:(T)->R):R=block(this) 最佳答案 我见过let用于限定嵌套变量的范围(忽略let的返

android - Gradle 项目同步失败,Kotlin

我使用的是BetaKotlin和Android-Studiochannel。更新到最新版本后,我遇到了一些gradle同步错误。以下是我从事件日志中复制的日志:Error:Couldnotfindorg.jetbrains.kotlin:kotlin-gradle-plugin:1.2.0-rc-39.Searchedinthefollowinglocations:file:/home/yourpc/Android/android/gradle/m2repository/org/jetbrains/kotlin/kotlin-gradle-plugin/1.2.0-rc-39/kotl

android - Kotlin 通过 Intents 传递自定义对象数组并作为 ArrayList 接收

我有几个Activity,我使用Intents在它们之间传递数据。我想从第一个Activity传递一个自定义对象数组,并在第二个Activity中将其设为数组列表。我的代码是:dataclassAttachment(valName:String,valContent:String)classActivityA{privatevarattachments:Array=arrayOf()funcallB(){intent=Intent(this,ActivityB::class.java).apply{putExtra("Attachments",attachments)}}}classA

android - 当我们在 kotlin 中开始新的 Activity 时,为什么我们将 .java 放在 intent 中而不是 .kt

根据kotlin文档,我们使用以下语法开始新ActivitystartActivity(Intent(this@MainActivity,NextActivity::class.java))它是kotlin那么为什么我们在类之后添加.java呢?为什么不呢? 最佳答案 因为NextActivity::class给你KClass,和KClass有一个名为java的方法/扩展属性这给了你java.lang.Class对于给定的类。你甚至可以checkoutthesource-codeforthatjavaproperty.

android - 为什么 'onBindViewHolder' 没有覆盖 Kotlin?

请帮帮我,我无法在Kotlin的RecyclerView中实现onBindViewHolder。我想在Kotlin语言androidstudio中使用Reyclerview为我的数据卡制作一个适配器。但是当我实现onBindViewHolder时,我的代码会抛出一个错误。请帮忙。packagecom.brid.azis.vipgame.test.Adapterimportandroid.content.Contextimportandroid.support.v7.widget.RecyclerViewimportandroid.view.LayoutInflaterimportand

android - 当给定可空 Int 时,具有大范围的 Kotlin when 语句卡住

我正在使用when语句来检查变量是否在多个相当大的范围内。为简单起见,我的代码如下所示:vallowRange=Int.MIN_VALUE..0valmediumRange=1..999_999//...valvalToCheck=1_000_000when(valToCheck){inlowRange->{doSomething()}inmediumRange->{doSomethingElse()}//...else->{handleTooHighOrNull()}}这很好用;但是,当我使valToCheck可为空时:vallowRange=Int.MIN_VALUE..0valm

android - Kotlin:检查是否为null并直接转换

在我的android应用程序中,我有一张map键的值可以是Int或String或null。目前,我是这样做的:map[key]?.let{valvalue=itasInt//usevaluehere}如果有办法像Swift一样有快捷方式ifletvalue=map[key]as?Int{}所以它就像一条线来检查无效并当场转换 最佳答案 你可以使用(map[key]as?Int)?.let{} 关于android-Kotlin:检查是否为null并直接转换,我们在StackOverflow

android - kotlin 控制流 "while"错误

这个问题在这里已经有了答案:Assignmentsarenotexpressions-Kotlin(2个答案)关闭4年前。我在JAVA中有以下代码:byte[]data=newbyte[1024];intcount;inttotal=0;while((count=input.read(data))!=-1){output.write(data,0,count);total+=count;publishProgress((int)(total*100/sizeFichero));}我正在将我的应用程序更新到Kotlin,但在此期间,我遇到了错误。在这段代码中,我得到以下错误:Assign

android - 如何在 Android Studio 上将 Kotlin 版本从 1.2.51 升级到 1.3

我在将Kotlin版本升级到1.3-M1或1.3-M2时遇到了一些问题我现在正在使用1.2.51,当我尝试使用任何较新版本(如1.3-M2)时遇到的错误是:找不到org.jetbrains.kotlin:kotlin-gradle-plugin:1.3-M2。我猜它已被移动,但我已经查看了所有内容,但没有找到解决方案。谁能指出我正确的方向? 最佳答案 感谢yole和TheWanderer,我找到了丢失的东西。Here在EAP-NEXT选项卡下,您可以找到适用于IntelliJ/AndroidStudio的正确版本的kotlin插件。

android - kotlin 中的 "object"是否被垃圾收集

如果我们有一个这样的对象objectRepo{varactiveMovies:ArrayList?=null}然后我们这样调用它来赋值Repo.activeMovies=movieList在实例化它的Activity完成后,它是否得到垃圾收集?我知道这可能是一个非常基本的问题,但我无法理解object在Kotlin中的生命周期。 最佳答案 如果我们像这样创建一个对象:objectTest{//somefunctionsandproperties}并将其反编译为Java,我们将看到下一段代码:publicfinalclassTest{