Tag: scala

Scala中的匿名recursion函数

有没有办法编写一个在Scala中recursion的匿名函数? 我在想这样的事情: ((t: Tree) => { print(t.value); for (c <- t.children) thisMethod(c) })(root) (相关问题: 哪些语言支持*recursion*函数文字/匿名函数? )

有没有任何可certificate的现实世界的语言? (Scala呢?)

我在大学里接受过正规系统的教育,但是我感到失望,他们似乎并没有被用在真正的词汇中。 我喜欢能够知道一些代码(对象,函数,任何)的工作原理,而不是通过testing,而是通过certificate 。 我相信我们都熟悉物理工程和软件工程之间不存在的相似之处(钢铁的performance可以预见,软件可以做任何事 – 谁知道!),我很想知道是否有任何语言可以用在真正的词(是要求一个Web框架太多问)? 我听说过有趣的function语言如scala的可testing性。 作为软件工程师 ,我们有什么select?

如何将多个不同的InputStream链接到一个InputStream中

我想知道是否有任何意识的方式链接多个InputStream到一个连续的Java(或斯卡拉)InputStream。 我需要的是parsing从FTP服务器通过networking加载的平面文件。 我想要做的是取文件[1..N],打开stream,然后将它们合并成一个stream。 所以当file1结束时,我想从file2开始读取等等,直到到达fileN的末尾。 我需要以特定的顺序读取这些文件,数据来自遗留系统,这些遗留系统会以barches方式生成文件,因此数据取决于另一个文件中的数据,但是我想将它们作为一个连续的stream处理,以简化我的域逻辑接口。 我search了四周,发现PipedInputStream,但我不积极,这是我所需要的。 一个例子会有帮助。

为什么数组不变,但列表协变?

为什么呢 val list:List[Any] = List[Int](1,2,3) 工作,但是 val arr:Array[Any] = Array[Int](1,2,3) 失败(因为数组是不变的)。 这个devise决定背后的预期效果是什么?

从stringScala的末尾删除字符

从Scala中的string末尾删除最后一个字符的最简单的方法是什么? 我发现Rubys String类有一些非常有用的方法,如斩波 。 我会在Scala中使用“oddoneoutz”.headOption,但它被折旧。 我不想陷入过于复杂的情况: string.slice(0, string.length – 1) 请有人告诉我,有一个很好的简单的方法,如砍这种常见的东西。

Int和Integer在Scala中有什么区别?

我正在使用一个我声明为Integer的variables,并发现>不是Integer的成员。 这是一个简单的例子: scala> i warning: there were deprecation warnings; re-run with -deprecation for details res28: Integer = 3 scala> i > 3 <console>:6: error: value > is not a member of Integer i > 3 ^ 将它与一个Int进行比较: scala> j res30: Int = 3 scala> j > 3 res31: Boolean = false Integer和Int有什么区别? 我看到了这个弃用警告,但是我不清楚为什么它被弃用,并且因为这个原因,为什么它没有方法。

scala.net生产准备好了吗?

斯卡拉似乎也有一个.NET实现。 我想知道这是一个完整的实现,没有任何松散的结局或只是一个展示的东西。 这一点很重要,因为我们即将开发的应用程序除了Web上的主要实现之外还应该具有Windows GUI。 有一种语言,核心代码可以在两个实现之间移植看起来像一个交易者。 任何人在Scala的.NET实现上工作? 任何反馈?

在Scala中def foo = {}和def foo()= {}有什么区别?

鉴于在Scala中定义一个函数的下列结构,你能解释一下这个区别是什么,它的含义是什么? def foo = {} 与 def foo() = {} 更新 感谢您的快速回复。 这些都很棒。 我唯一的问题是: 如果我省略括号,是否还有一种方法来传递函数呢? 这是我得到的repl: scala> def foo = {} foo: Unit scala> def baz() = {} baz: ()Unit scala> def test(arg: () => Unit) = { arg } test: (arg: () => Unit)() => Unit scala> test(foo) <console>:10: error: type mismatch; found : […]

我可以从代码访问我的Scala应用程序的名称和版本(在SBT中设置)吗?

我正在用SBT(0.11.0)构build一个应用程序,使用Scala构build定义,如下所示: object MyAppBuild extends Build { import Dependencies._ lazy val basicSettings = Seq[Setting[_]]( organization := "com.my", version := "0.1", description := "Blah", scalaVersion := "2.9.1", scalacOptions := Seq("-deprecation", "-encoding", "utf8"), resolvers ++= Dependencies.resolutionRepos ) lazy val myAppProject = Project("my-app-name", file(".")) .settings(basicSettings: _*) […] 我在过程结束时打包了一个.jar文件。 我的问题是一个简单的问题:是否有一种方法从我的Scala代码以编程方式访问应用程序名称(“my-app-name”)和版本(“0.1”)? 如果我能帮到的话,我不想在两个地方重复。 任何指导非常感谢!

Scala多types模式匹配

我想知道如何使用多种types的模式匹配。 我有: abstract class MyAbstract case class MyFirst extends MyAbstract case class MySecond extends MyAbstract case class MyThird extends MyAbstract // shouldn't be matched and shouldn't call doSomething() val x: MyAbstract = MyFirst x match { case a: MyFirst => doSomething() case b: MySecond => doSomething() case _ => doSomethingElse() } 所以我想写一些类似于: x match { […]