Tag: 斯卡拉

Scala等同于Range的方式来自定义类

最近看Kotlin,你可以做..或者一些自定义类而不是Int或其他类。 Kotlin通过如下扩展函数来实现: operator fun <T: Comparable<T>> T.rangeTo(that: T): ClosedRange<T>这意味着只要你的类实现了Comparable接口,你可以免费得到它你可以这样做: val now = LocalDate.now() val vacation = now..now.plusDays(10) 我发现这很方便。 只是想知道我们怎么能在Scala中做到这一点,我知道我们应该通过类型类来实现它吗? 也许是对还是错。 任何人都可以向我展示在Scala中最简单的方法吗? 看起来好像没有内置的LocalDate

Intellij 15.0.3支持gradle和scala吗?

我正在使用Intellij IDEA 15.0.3 BUILD#IC-143.1821 斯卡拉插件2.1.0 Gradle插件143.1821.5 当我加载一个gradle项目,我发现我不能运行scala应用程序与此错误: /usr/java/jdk1.7.0_67-cloudera/bin/java -Didea.launcher.port=7535 -Didea.launcher.bin.path=/home/cloudera/apps/intellij/idea-IC-143.1184.17/bin -Dfile.encoding=UTF-8 -classpath /usr/java/jdk1.7.0_67-cloudera/jre/lib/jfxrt.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/plugin.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/jce.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/deploy.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/rt.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/javaws.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/charsets.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/resources.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/jsse.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/management-agent.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/jfr.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/ext/sunjce_provider.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/ext/zipfs.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/ext/dnsns.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/ext/sunpkcs11.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/ext/sunec.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/ext/localedata.jar:/home/cloudera/workplace/spark-streaming-test/out/production/spark-streaming-test:/home/cloudera/.m2/repository/com/github/scopt/scopt_2.10/3.3.0/scopt_2.10-3.3.0.jar:/home/cloudera/.m2/repository/com/typesafe/scala-logging/scala-logging-api_2.10/2.1.2/scala-logging-api_2.10-2.1.2.jar:/home/cloudera/.m2/repository/com/typesafe/scala-logging/scala-logging-slf4j_2.10/2.1.2/scala-logging-slf4j_2.10-2.1.2.jar:/home/cloudera/apps/intellij/idea-IC-143.1184.17/lib/idea_rt.jar com.intellij.rt.execution.application.AppMain HelloWorld Exception in thread "main" java.lang.NoClassDefFoundError: scala/Predef$ at HelloWorld$.main(HelloWorld.scala:7) at HelloWorld.main(HelloWorld.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) Caused by: java.lang.ClassNotFoundException: scala.Predef$ at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) […]

为什么Kotlin比Scala编译速度更快?

当我们阅读Kotlin编程语言的维基百科描述时,它指出: JetBrains的领导Dmitry Jemerov说,大多数语言没有他们正在寻找的功能,除了斯卡拉。 不过,他认为Scala的编译时间缓慢是一个明显的缺陷[4]。 Kotlin的既定目标之一就是尽快地编译Java。 他们是如何实现这一目标的? 为什么Scala编译时间太慢,以至于Kotlin的创建者都不能接受? 换句话说,Scala编译器的哪些特性使其比Kotlin编译器慢呢?

Gradle构建失败,Kotlin,Scala和Java

我有一个用Java,Scala和Kotlin编写的项目。 但是,当我在Gradle中构建这个项目时,它带有错误消息: 11:19:51: Executing task 'build'… :compileKotlin Using Kotlin incremental compilation e: F:\Code\Project\Avalon\src\main\kotlin\avalon\group\Execute.kt: (3, 19): Unresolved reference: Flag e: F:\Code\Project\Avalon\src\main\kotlin\avalon\group\Execute.kt: (10, 18): Unresolved reference: GroupMessageResponder e: F:\Code\Project\Avalon\src\main\kotlin\avalon\group\Execute.kt: (13, 2): 'doPost' overrides nothing e: F:\Code\Project\Avalon\src\main\kotlin\avalon\group\Execute.kt: (35, 23): Unresolved reference: Flag e: F:\Code\Project\Avalon\src\main\kotlin\avalon\group\Execute.kt: (38, 2): 'getHelpMessage' overrides nothing e: F:\Code\Project\Avalon\src\main\kotlin\avalon\group\Execute.kt: (40, 2): 'getKeyWordRegex' overrides nothing e: F:\Code\Project\Avalon\src\main\kotlin\avalon\group\Execute.kt: […]

带有Scala接收器的函数类型

我正在调查这个Kotlin的例子: class HTML { fun body() { … } } fun html(init: HTML.() -> Unit): HTML { val html = HTML() // create the receiver object html.init() // pass the receiver object to the lambda return html } html { // lambda with receiver begins here body() // calling a method on the receiver object […]

如何让Kotlin的类型安全的建设者在斯卡拉工作?

Kotlin有令人敬畏的类型安全建设者 ,可以创建这样的dsl html { head { title("The title") body {} // compile error } body {} // fine } 令人敬畏的是,你不能把标签放在无效的地方,像头内的身体,自动完成也能正常工作。 我很感兴趣,如果这可以在Scala中实现。 如何得到它?

为什么Scala编译器在将Kotlin密封类传递给构造函数时给我一个错误?

我有一个密封的课,写在科特林: sealed class Schema { class RecordSchema(val fields: List<Field>): Schema() class ArraySchema(val elementSchema: Schema): Schema() … } 另一个将RecordSchema作为参数的类: class Enrichment(config: Config, val schema: RecordSchema) { … } 在Scala中,我有一个类,其中包含一个RecordSchema实例,然后创建一个Enrichment实例。 object Job { def main(args: Array[String]): Unit = { /// some initializing of resources… and then… val recordSchema = schemas.getSchema(id) // type is Schema.RecordSchema val enrichment = […]

还有什么图书馆可以和kotlin的monad合作?

你知道是否有任何图书馆可以和科特林的monad合作吗?

Flink可以和Kotlin一起使用吗?

我有一个项目,我需要实时流数据。 我已经写了一个kafka话题的流量数据。 现在我需要读取这些数据并处理它。 为此,我打算使用Flink。 我的困境是,我不知道Java,Scala或Kotlin。 我必须学习其中一个使用Flink,因为Kotlin是最新的,我想我应该学习,但它实际上是兼容Flink? 对于任何类型的数据流,我都是全新的,所以请原谅我的问题中的任何错误,如果我错了,绝对纠正我。

在kotlin中有没有Future.sequence类似物?

在scala中,您可以将期货收藏“映射”到收藏的未来: val l: List[Future[String]] = List(Future {"1"}, Future {"2"}) val x: Future[List[String]] = Future.sequence(l) 如何相同的事情,但与科特林?