草庐IT

Kotlin-script

全部标签

intellij-idea - 如何在 IntelliJ 中更改 Kotlin 的 'this property has a backing field' 代码编辑器高亮显示?

我的天哪,IntelliJ的这种默认颜色突出显示令人眼花缭乱。我该如何更改? 最佳答案 您修改Kotlin颜色突出显示的方式与修改任何其他语法突出显示的方式相同。您可以在Preferences>Colors&Fonts>Kotlin下找到它。你想要的项目是Propertywithbackingfield。但是请注意KT-6765是我发现的一个错误,除非您还设置了背景颜色,否则不尊重前景色。因此,要更改它,请确保同时设置前景色和背景色,如下所示:我个人选择了与Darcula默认背景大致接近的深色背景。

intellij-idea - 如何在 IntelliJ 中更改 Kotlin 的 'this property has a backing field' 代码编辑器高亮显示?

我的天哪,IntelliJ的这种默认颜色突出显示令人眼花缭乱。我该如何更改? 最佳答案 您修改Kotlin颜色突出显示的方式与修改任何其他语法突出显示的方式相同。您可以在Preferences>Colors&Fonts>Kotlin下找到它。你想要的项目是Propertywithbackingfield。但是请注意KT-6765是我发现的一个错误,除非您还设置了背景颜色,否则不尊重前景色。因此,要更改它,请确保同时设置前景色和背景色,如下所示:我个人选择了与Darcula默认背景大致接近的深色背景。

java - 在 Kotlin 中使用 Java Void 类型

由于类型限制,我有一个Java函数需要我传递Void参数。比如:voidfoo(Voidv){//dosomething}现在我想从Kotlin调用该函数,但编译器提示当我使用null调用它时类型不兼容,就像我从Java中一样:foo(null);我必须向该函数传递什么以便Kotlin编译器接受它?更新:实际代码如下所示:funfoo():Map{returnmapOf(Pair("foo",null))}更新:使用nullasVoid实际上也不起作用:kotlin.TypeCastException:nullcannotbecasttonon-nulltypejava.lang.Vo

java - 在 Kotlin 中使用 Java Void 类型

由于类型限制,我有一个Java函数需要我传递Void参数。比如:voidfoo(Voidv){//dosomething}现在我想从Kotlin调用该函数,但编译器提示当我使用null调用它时类型不兼容,就像我从Java中一样:foo(null);我必须向该函数传递什么以便Kotlin编译器接受它?更新:实际代码如下所示:funfoo():Map{returnmapOf(Pair("foo",null))}更新:使用nullasVoid实际上也不起作用:kotlin.TypeCastException:nullcannotbecasttonon-nulltypejava.lang.Vo

scala - @uncheckedVariance 在 Kotlin 中?

在他的演讲中CompilersareDatabases,MartinOdersky提出了一个有趣的方差极端案例:classTree[-T]{deftpe:T@uncheckedVariancedefwithType(t:Type):Tree[Type]}T被定义为逆变的,因为将类型树(Tree[Type])视为无类型树(Tree[Nothing]),但不是相反。通常,Scala编译器会提示T显示为tpe方法的返回类型。这就是Martin使用@uncheckedVariance注释关闭编译器的原因。这是翻译成Kotlin的示例:abstractclassTree{abstractfunt

scala - @uncheckedVariance 在 Kotlin 中?

在他的演讲中CompilersareDatabases,MartinOdersky提出了一个有趣的方差极端案例:classTree[-T]{deftpe:T@uncheckedVariancedefwithType(t:Type):Tree[Type]}T被定义为逆变的,因为将类型树(Tree[Type])视为无类型树(Tree[Nothing]),但不是相反。通常,Scala编译器会提示T显示为tpe方法的返回类型。这就是Martin使用@uncheckedVariance注释关闭编译器的原因。这是翻译成Kotlin的示例:abstractclassTree{abstractfunt

kotlin - 结合 null 安全性和 assertNotNull

在测试中我们通常有assertNotNull,但它不执行从可为空类型到非可空类型的智能转换。我必须写这样的东西:if(test==null){Assert.fail("")return}仅使用assertNotNull调用执行智能转换是否是一种解决方法?你是怎么处理的? 最佳答案 很遗憾,您调用的函数体(包括内联函数)不用于智能转换和可空性推断。您的代码没有太多可以改进的地方,我只建议一件事:您可以使用theElvisoperator与Nothing这些断言语句的函数。控制流分析考虑了导致Nothing的分支,并从中推断出可空性:f

kotlin - 结合 null 安全性和 assertNotNull

在测试中我们通常有assertNotNull,但它不执行从可为空类型到非可空类型的智能转换。我必须写这样的东西:if(test==null){Assert.fail("")return}仅使用assertNotNull调用执行智能转换是否是一种解决方法?你是怎么处理的? 最佳答案 很遗憾,您调用的函数体(包括内联函数)不用于智能转换和可空性推断。您的代码没有太多可以改进的地方,我只建议一件事:您可以使用theElvisoperator与Nothing这些断言语句的函数。控制流分析考虑了导致Nothing的分支,并从中推断出可空性:f

redis - 在 Redis 集群上运行 SCRIPT FLUSH 是否安全?

最近,我的一个Redis集群开始出现问题。used_memroy和used_memory_rss不断增加。根据一些谷歌搜索,我发现了以下讨论:https://github.com/antirez/redis/issues/4570现在我想知道在我的生产Redis集群上运行SCRIPTFLUSH命令是否安全? 最佳答案 是的-您可以在生产集群中安全地运行SCRIPTFLUSH命令。唯一潜在的副作用是在服务器执行时阻塞服务器。但是请注意,您需要在每个节点中调用它。 关于redis-在Redi

class - Kotlin 中另一个类中的密封类无法编译 : cannot access '<init>' it is private

如果我使用docs中的示例,classSomeActivity:AppCompatActivity(){sealedclassExprdataclassConst(valnumber:Double):Expr()dataclassSum(vale1:Expr,vale2:Expr):Expr()objectNotANumber:Expr()}无法编译,报错:Cannotaccess'',itisprivatein'Expr'.但是,将其移到封闭类之外使其可以编译:sealedclassExprdataclassConst(valnumber:Double):Expr()dataclas