草庐IT

scala-tools

全部标签

java - 与 Java 或其他非函数式语言相比,Scala 究竟如何利用更多的核心?

我最近在听MartinOdersky的视频,他试图解释函数式语言(例如Scala,但当然不一定Scala)相对于OOP或过程语言的基本优势。p>换句话说,他解释说Moore'sLaw最近让我们失望了,因此为了让处理器“更快”,CPU制造商没有将内核中的晶体管数量增加一倍,而是简单地提供了更多的内核。这反过来又使CPU能够被并发/多线程应用程序更充分地利用。因此,主要的收获是:应用程序的并发性越高,其代码片段就越多地同时在不同的内核上运行,并且CPU上的内核越多,程序的整体执行速度就越快。到目前为止,还不错。他没能解释(或者更可能是我没能理解)的是,为什么像Scala这样的函数式语言比其

java - 如何在 Java 8 (Scala) 中将日期时间字符串转换为长(UNIX 纪元时间)

我想要一些pattern中的字符串的UNIX纪元时间(Posix时间,Unix时间),该字符串是正常格式(所以是UTC)。请使用Java8,而不是Joda或旧的Java。(毫秒请参见Howtoconvertadatetimestringtolong(UNIXEpochTime)MillisecondsinJava8(Scala))到目前为止,我有以下内容,但出于多种原因我讨厌它:对于最常见的日期处理(转换为UNIX大纪元时间)而言,它过于冗长了。7方法调用应该是1。它必须指定UTC,但UTC肯定只是默认值,为什么我必须在这里明确说明?它有一个字符串文字"UTC"它有一个神奇的数字Zon

java - 为什么 @RequestMapping 注解在 java 中接受 String 参数而在 scala 中不接受?

阅读@RequestMapping文档:http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/web/bind/annotation/RequestMapping.html它的路径映射接受一个字符串数组参数。所以这可以使用java:@RequestMapping("MYVIEW")但在scala中我需要使用:@RequestMapping(Array("MYVIEW"))scala版本有意义,因为注释需要一个字符串数组。但是为什么上面在java中工作,它不应该给出编译时错误吗?下面的类“Arra

java - 将通用通配符从 Java 转换为 Scala

在java.util.Collections类,我们有两个变体sort方法,一个接受具有相应Comparator的任意对象列表的方法:publicstaticvoidsort(Listlist,Comparatorcomparator)还有一个接受Comparable的列表对象:publicstatic>voidsort(Listlist)我在想如何将这种带有有限通配符的方法签名翻译成Scala。对于第一个版本,我按字面意思翻译了签名,乍一看没有编译问题:defsort[T](list:List[T],comparator:Comparator[_>:T]){???}但后来我发现我无法

java - 如果我将变量声明为其抽象父类(super class),Scala 的 @throws 注释将在 javac 中被忽略

在Java中,如果原始抽象方法不存在异常(重写方法不抛出异常),则不能指定重写抽象方法抛出。但是在Scala你可以做到这一点,因为它没有检查异常。很好,但是如果您使用@throws注释应该会提示Java编译器正在发生的事情,对吗?鉴于此Scala代码:packagemyscalaabstractclassSFoo{defbar():Unit}classSFoobarextendsSFoo{@throws[Exception]overridedefbar():Unit={thrownewException("hithere")}}我有两个不同的Java程序,其中一个将在运行时编译并运行到

java - NoClassDefFoundError : scala/ScalaObject in mixed Scala/Java project

背景:我是一名C#开发人员,但我的下一个项目需要在JVM上。我研究过Scala,我认为它可以让我在C#中尽我所能(Lambda、推断类型、函数式等)。我会把自己归类为一个非常新手的Java开发人员……尤其是在使用IDE等方面。我有一个似乎有效的Scala项目...我做了一个Java项目,引用了Scala项目小编好像知道Scala项目中的类(typeahead等)当我尝试运行Java项目时,出现此错误:Exceptioninthread"main"java.lang.NoClassDefFoundError:scala/ScalaObjectatjava.lang.ClassLoader

java - 为什么我可以在 Scala 中定义通用异常类型?

在Java中,定义通用异常类是非法的。编译器将拒绝编译以下内容:publicclassFooextendsThrowable{//whatever...}但是,这段Scala代码编译得很好:classFoo[T](valfoo:T)extendsThrowable更奇怪的是,只要我捕获原始Foo类型,我就可以在Java代码中使用这个Scala类:publicclassMain{publicstaticvoidmain(String[]args){try{thrownewFoo("test");}catch(Fooe){System.out.println(e.foo());}}}这会编

java - Scala REPL 中的 Unicode 正则表达式

我想检测Unicode字母(\p{L})的单词。对于以下语句,Scala的REPL返回false,而在Java中它是true(这是正确的行为):java.util.regex.Pattern.compile("\\p{L}").matcher("ä").matches()Java和Scala都在JRE1.7中运行:System.getProperty("java.version")返回"1.7.0_60-ea"这可能是什么原因? 最佳答案 可能是解释器中使用了不兼容的字符编码。例如,这是我的输出:scala>System.getPr

java - 如何在 Java 中使用 Scala 隐式类

我有一个来自RecordServiceAPI的Scala隐式类,我想在Java文件中使用它。packageobjectspark{implicitclassRecordServiceContext(ctx:SparkContext){defrecordServiceTextFile(path:String):RDD[String]={newRecordServiceRDD(ctx).setPath(path).map(v=>v(0).asInstanceOf[Text].toString)}}}现在我正在尝试使用下面的导入将它导入到Java文件中。importcom.cloudera.

java - clojure/scala 互操作?

我正在尝试与这个简单的Scala代码互操作,但遇到了一些麻烦。packageindicatorsclassDoubleRingBuffer(valcapacity:Int=1000){varelements=newArray[Double](capacity);privatevarhead=capacity-1privatevarmax=0defsize():Int={returnmax+1}defadd(obj:Double):Double={head-=1if(head=capacity||i=max)max=ivarindex=(head+i)%capacityvarprev=e