Tag: 科特林

Kotlin JS – 字符串到数字的转换?

如何做Kotlin JS应用程序中的字符串到数字转换。 我使用下面的代码,并有一些麻烦,从HTMLInputElement值转换为双。 fun c2f(self: Any) { console.log(“Self object: ${self} “) val celsius = document.getElementById(“celcius”)?.getAttribute(“value”) as Double val fahrenheit = celsius * 1.8 + 32 console.log(“Fahrenheit value: ${fahrenheit} “) window.alert(“Celcius (${celsius}) -> Fahrenheit (${fahrenheit}) “) } 此外,我没有看到任何toDouble()函数的String类的情况下,在JVM应用程序的情况。

Kotlin:为什么我不能使用我的一个function?

我想使用我定义的函数接受一个字符串,但软件不会编译。 fun passes(address: String) = Collections.frequency(addresses, address) <= CONNECTIONS_PER_IP fun passes(remoteAddress: InetSocketAddress) = passes(remoteAddress.hostName) 我甚至无法使用自定义字符串调用字符串函数,例如, passes(“127.0.0.1”) 。 None of the following functions can eb called with the arguments supplied. passes(String) defined in abendigo.Firewall passes(InetSocketAddress) defined in abendigo.Firewall

Kotlin的crossinline和noinline有什么不同?

此代码编译时会有一个警告 (对性能影响不明显 ): inline fun test(noinline f: () -> Unit) { thread(block = f) } 此代码不能编译 ( 非法使用内联参数 ): inline fun test(crossinline f: () -> Unit) { thread(block = f) } 此代码编译时会有一个警告 (对性能影响不明显 ): inline fun test(noinline f: () -> Unit) { thread { f() } } 此代码编译没有警告或错误 : inline fun test(crossinline f: () -> […]

如何执行val的多步骤初始化

为了学习一点kotlin我建立了一个基于经典论文Monadic Parser Combinators的解析器组合库。 在我的情况下,我需要转发declare解析器,因为递归语法。 准备最终expression式解析器时,我需要更新前向声明 我第一次尝试是这样的 val addLike = mulLike separatedBy addLikeSeparator val expression = forwarded.second(addLike) addLike 这个想法是执行一个短的初始化,然后返回addLike来初始化值。 这是一个非常常见的模式,当我做一些F#编程,我认为这是一个很好的模式,因为它简化了隐藏初始化细节。 然而,这在kotlin中kotlin : Error:(195, 5) Kotlin: Expecting a top level declaration 这种方法也失败了: val addLike = mulLike separatedBy addLikeSeparator val expression = forwarded.second(addLike); addLike 问题似乎是这样的; 将两个expressions组合成一个statement 。 所以我试了一下,希望它的行为有点像C / C ++,但没有运气: val addLike = mulLike separatedBy addLikeSeparator val […]

在Kotlin没有吸气的财产

我怎样才能用一个自定义的setter声明一个属性,但是在Kotlin没有getter? 例如在安科 ,他们这样做: var myProperty: Type @Deprecated(AnkoInternals.NO_GETTER, level = DeprecationLevel.ERROR) get() = AnkoInternals.noGetter() set(value) { field = value; /* setter logic */ } 但是对我来说这看起来有些不好意思。 这是一个正确的方法吗? 如果是,那么项目没有Anko依赖的情况呢? PS让我清楚 – 我想要的不是吸气,而是私人的吸气

函数返回Kotlin中的临时对象

目前我有一个私人的function,返回一个Pair对象。 第一个用户是东西的发送者,第二个用户是这个东西的接收者。 我认为这Pair是不够的自我解释 – 或者如果你喜欢干净,即使它只是一个私人function。 是否有可能返回一个像这样的临时对象: private fun findUsers(instanceWrapper: ExceptionInstanceWrapper): Any { return object { val sender = userCrud.findOne(instanceWrapper.fromWho) val receiver = userCrud.findOne(instanceWrapper.toWho) } } 并像这样使用返回的值: // … val users = findUsers(instanceWrapper) users.sender // … users.receiver // … // … ? 如果不是,Kotlin的特别对象有什么意义?

无法添加BigInteger

当我试图执行下面的代码: fun main(args: Array) { val x = BigInteger.ONE var y = BigInteger.TEN val z = x + y; } 我得到这个错误,有什么不对? 我正在使用1.0.0-beta-1038-IJ143-19 Error:(7, 15) Kotlin: Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: public operator fun kotlin.Array.plus(array: kotlin.Array): kotlin.Array defined in kotlin public operator fun kotlin.Array.plus(collection: kotlin.Collection): kotlin.Array defined […]

Scala和Kotlin的手动JAR编译

我正在尝试为Kotlin创建一个调用Scala代码的概念certificate。 以下是目前项目的情况: kotlin-src/ hello.kt scala-src/ Hello.scala 然后编译这两种语言: kotlinc kotlin-src/*.kt scalac scala-src/*.scala 在根目录下生成以下文件: META-INF/ main.kotlin_module HelloKt.class HelloScala.class 我试图变成一个JAR: jar cvfM run.jar *.class META-INF 但是,它不会运行(我认为这是因为我没有指定一个主类)。 $ java -jar run.jar Error: Invalid or corrupt jarfile run.jar 所以,我创建了以下清单: Main-Class: HelloKt 在编译jar之前,这个文件被复制到META-INF目录下,结果如下: HelloKt.class HelloScala.class META-INF/ META-INF/main.kotlin_module META-INF/MANIFEST.MF 新的JAR将执行,但总是失败并产生运行时exception。 $ java -jar run.jar Exception in thread “main” java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics at HelloKt.main(hello.kt) […]

在Kotlin中,我可以创建一个向后计数的范围吗?

我查看了范围的文档 ,我看不到任何向后的范围。 是否有可能做到这样的事情: for (n in 100..1) { println(n) } 并得到结果: 100 99 98 …

如何为kotlin中的函数参数设置不为null

我在Kotlin创建了一个函数。 它validation电子邮件和密码字段。 我想申请电子邮件和密码不应该为空。 @NotNull有点注释在这里。 有没有人知道如何在Kotlin做到这一点? 所以调用者不能发送空值。 private fun isEmailAndPasswordValid(email: String, password: String): Boolean { if (email.isEmpty()) return false if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()) return false if (password.isEmpty()) return false return true }