标签: scala

适用于Android的Scala编程

我已经在Scala和Android上使用了Scala 2.7.3 final 的教程.由此产生的Android应用程序可以工作,但即使是最基本的应用程序也需要几分钟(!)来编译,需要900 kb压缩,这是移动应用程序的显示阻止.此外,IDE时不时会耗尽内存.我认为dex不适合像这样的大型图书馆scala-library.

  • 所以我的问题是:有没有人真的这样做了,有没有治愈的方法?

resources android scala

255
推荐指数
7
解决办法
7万
查看次数

什么是Scala中的"提升"?

有时,当我阅读Scala生态系统中的文章时,我会读到"提升"/"解除"一词.不幸的是,没有解释这究竟意味着什么.我做了一些研究,似乎提升与功能价值或类似的东西有关,但我无法找到一个文本,以初学者友好的方式解释实际提升的内容.

通过Lift框架存在额外的混乱,其名称已经提升,但它无助于回答这个问题.

什么是Scala中的"提升"?

functional-programming scala function lifting

245
推荐指数
4
解决办法
3万
查看次数

Scala中方法和函数之间的区别

我阅读了Scala Functions(另一个Scala之旅的一部分).在那篇文章中他说:

方法和功能不是一回事

但他没有解释任何有关它的事情.他想说什么?

methods scala function

244
推荐指数
6
解决办法
7万
查看次数

Scala:加入一个可迭代的字符串

如何在Scala中用另一个字符串"连接"一个可迭代的字符串?

val thestrings = Array("a","b","c")
val joined = ???
println(joined)
Run Code Online (Sandbox Code Playgroud)

我想要输出这个代码a,b,c(通过","加入元素).

string scala

244
推荐指数
1
解决办法
12万
查看次数

Scala:抽象类型与泛型

我正在阅读斯卡拉之旅:抽象类型.什么时候使用抽象类型更好?

例如,

abstract class Buffer {
  type T
  val element: T
}
Run Code Online (Sandbox Code Playgroud)

而是那些泛型,例如,

abstract class Buffer[T] {
  val element: T
}
Run Code Online (Sandbox Code Playgroud)

generics scala abstract-type

243
推荐指数
3
解决办法
3万
查看次数

懒惰的val怎么办?

我注意到Scala提供了lazy vals.但我不知道他们做了什么.

scala> val x = 15
x: Int = 15

scala> lazy val y = 13
y: Int = <lazy>

scala> x
res0: Int = 15

scala> y
res1: Int = 13
Run Code Online (Sandbox Code Playgroud)

REPL表明y是一个lazy val,但它是如何从一个正常的不同val

scala lazy-evaluation

237
推荐指数
5
解决办法
10万
查看次数

233
推荐指数
11
解决办法
11万
查看次数

按名称调用vs Scala中的值调用,需要澄清

据我所知,在Scala中,也可以调用函数

  • 按值或
  • 按名字

例如,给定以下声明,我们是否知道如何调用该函数?

宣言:

def  f (x:Int, y:Int) = x;
Run Code Online (Sandbox Code Playgroud)

呼叫

f (1,2)
f (23+55,5)
f (12+3, 44*11)
Run Code Online (Sandbox Code Playgroud)

请问有什么规定?

scala

226
推荐指数
5
解决办法
8万
查看次数

案例对象与Scala中的枚举

是否有关于何时使用案例类(或案例对象)与在Scala中扩展Enumeration的最佳实践指南?

他们似乎提供了一些相同的好处.

enumeration scala case-class

225
推荐指数
9
解决办法
11万
查看次数

Scala 2.8 breakOut

在Scala 2.8中,有一个对象scala.collection.package.scala:

def breakOut[From, T, To](implicit b : CanBuildFrom[Nothing, T, To]) =
    new CanBuildFrom[From, T, To] {
        def apply(from: From) = b.apply() ; def apply() = b.apply()
 }
Run Code Online (Sandbox Code Playgroud)

我被告知这会导致:

> import scala.collection.breakOut
> val map : Map[Int,String] = List("London", "Paris").map(x => (x.length, x))(breakOut)

map: Map[Int,String] = Map(6 -> London, 5 -> Paris)
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?为什么breakOut被称为我的论据List

scala scala-2.8 scala-collections

223
推荐指数
4
解决办法
3万
查看次数