10得票2回答
Scala中for-comprehension的性能表现

我有一个关于 Scala 中 for-comprehensions 效率的问题。 当 perm 列表中大约有 550 个元素时,以下代码运行时间约为 45 秒。perm = some list for{ perm <- perms.withFilter(_.size > 0...

7得票2回答
Scala: 用于 future for-comprehension 的 ExecutionContext

当我创建一个 `future`,或者应用 `onSuccess` 和 `map` 等方法时,我可以为它们指定 `ExecutionContext`。 例如, val f = future { // code } executionContext f.map(someFunction)...

7得票1回答
Scala中使用类型注解的for推导异常

我正在尝试理解在for循环内处理null和类型注释时似乎出现的奇怪行为。 例如: def f(): String = null for { a <- Option("hello") b = f() } yield (a, b) 结果符合预期: //> res0:...

9得票3回答
使用Scala的for推导式处理Future和Option

object Main extends App { val p1 = Promise[Option[String]]() val p2 = Promise[Option[String]]() val f1 = p1.future val f2 = p2.future va...

98得票5回答
使用for-comprehension进行flatMap/Map转换感到困惑

我似乎确实不理解Map和FlatMap。我不明白的是,一个for-comprehension如何是一系列嵌套调用map和flatMap。以下示例来自于Scala函数式编程def bothMatch(pat:String,pat2:String,s:String):Option[Boolean]...

19得票3回答
两个列表的笛卡尔积

给定一个数字与多个字符相关联的地图scala> val conversion = Map("0" -> List("A", "B"), "1" -> List("C", "D")) conversion: scala.collection.immutable.Map[java...

14得票3回答
为了理解和函数创建的数量

最近我参加了Scala开发者职位的面试,被问到以下问题:// matrix 100x100 (content unimportant) val matrix = Seq.tabulate(100, 100) { case (x, y) => x + y } // A for { ...

32得票6回答
获取Scala for / comprehension表达式的去糖部分?

有没有人知道如何在REPL(或编译器)尝试编译之前获取(for/comprehension表达式的Scala部分)去糖化的翻译? 到目前为止,我找到的唯一方法是使用编译器的"-print"标志,但那只会给你完整的Scala翻译...

37得票5回答
Scala中的Future [Option]和for-comprehensions

我有两个返回 Future 的函数。我试图在使用 for-yield 推导式将第一个函数的修改结果传递给另一个函数。 这种方法是有效的: val schoolFuture = for { ud <- userStore.getUserDetails(user.userId) ...

33得票4回答
在Scala的for推导式中使用println

在for循环中,我不能仅仅放置一个打印语句:def prod (m: Int) = { for (a <- 2 to m/(2*3); print (a + " "); b <- (a+1) to m/a; c = (a*b) ...