小编Mic*_*ael的帖子

函数"eventloop"在Scala Actors中的作用是什么?

函数eventloop在Scala Actors中做了什么以及它对什么有用?

scala actor

7
推荐指数
1
解决办法
795
查看次数

Scala actor的Client-Server示例

实现以下示例的最佳方法是什么?

  • Actor server接收Requests,处理它们,Response 为每个创建一个新的Request并将其发送ResponseRequest发送方.

  • 演员client发送Requests和接收Responses.

所有这些通信都是异步的,因此它使用react.

这只是一个例子,所以它不应该处理所有这些情况,如server下降,client卡住等.它应该只是简洁和富有表现力.

scala actor

7
推荐指数
1
解决办法
1749
查看次数

Seq [+ A]如何在A中协变?

如果A出现在逆变位置,Seq [+ A]如何在A中是协变的:

def :+ (elem: A) : Seq[A] ?
Run Code Online (Sandbox Code Playgroud)

据我所知,方法参数类型是逆变位置.我错过了什么?

scala covariance

6
推荐指数
1
解决办法
268
查看次数

关于蛋糕模式的问题

让那里有几个单独的DAO类OrderDAO,ProductDAOCustomerDAO在数据库中存储/检索数据并共享一个实例DataSource(数据库连接工厂).

为了创建一个DataSource实例并将其插入,DAOs我们通常使用Spring DI.现在我想在没有任何DI框架的Scala中做到这一点.

我已经阅读了关于蛋糕模式的内容,看起来我应该做以下事情:

trait DatabaseContext { val dataSource:Datasource }

trait OrderDAO {this:DatabaseContext =>
  ... // use dataSource of DatabaseContext
}

trait ProductDAO {this:DatabaseContext => 
  ... // use dataSource of DatabaseContext
}

object DAOImpl extends OrderDAO with ProductDAO with DatabaseContext {
  val dataSource = ... // init the data source
}
Run Code Online (Sandbox Code Playgroud)

我能正确理解蛋糕图案吗?

我可以DAOs使用蛋糕模式以不同方式实现这些吗?

像Spring这样的DI框架没有提供什么?

如何创建单独的OrderDAOImplProductDAOImpl对象共享同一个DataSource实例而不是一个大DAOImpl

dao dependency-injection scala

6
推荐指数
2
解决办法
856
查看次数

如何将回溯算法转换为流?

有没有办法在Scala中定义stream一个backtracking算法?

例如,以下backtracking算法打印给定大小的所有"二进制"字符串.

def binaries(s:String, n:Int) {
  if (s.size == n)
    println(s)
  else {
    binaries(s + '0', n)
    binaries(s + '1', n)
  }
}

我相信我可以stream使用另一种迭代算法定义一个给定大小的"二进制"字符串.不过我想知道我是否可以将上面的回溯算法转换为stream.

scala stream backtracking

6
推荐指数
1
解决办法
666
查看次数

filterKeys会导致堆栈溢出吗?

据我所知,方法在原始地图filterKeysMapLike创建一个包装器.所以,如果我执行下面的代码m将是一个10K包装链和原始地图链.

var m = Map(1 -> "one", 2 -> "two")
for(1 <- 0 until 10000) {m = m.filterKeys(_%2 == 0)}

现在我认为调用会m.contains导致堆栈溢出,但它不会发生.你能解释一下这个案子的情况吗?

stack-overflow collections scala

6
推荐指数
1
解决办法
296
查看次数

Scala中的"未经检查的类型模式"警告?

假设我有一张地图m: Map[Any, Int].现在我只想(String, Int)从中获取条目m并创建m1: Map[String, Int]包含这些条目的新地图.

我正在尝试执行以下操作:

val m1: Map[String, Int] = m collect {case e:(String, Int) => e}
Run Code Online (Sandbox Code Playgroud)

它似乎工作但我得到一个警告:非变量类型参数类型模式(String,Int)中的字符串是未选中的,因为它被擦除消除.

我该如何摆脱警告?

scala compiler-warnings type-erasure

6
推荐指数
1
解决办法
1802
查看次数

如何在Scala中编写此验证逻辑?

假设我想在Scala中编写以下逻辑

val xdir = System.getProperty("XDir")
if (xdir == null)
   error("No XDir") // log the error and exit

val ydir = System.getProperty("YDir") 
if (ydir == null)
   error("No YDir")

if (!new File(xdir).isDirectory)
   error("XDir is not a directory")

if (!new File(ydir).isDirectory)
   error("YDir is not a directory")

if (!new File(xdir).exists)
   error("XDir does not exis")

if (!new File(ydir).exists)
   error("YDir does not exist")
...
(and so on)

在Scala中编写此验证链的最佳方法是什么?

scala

6
推荐指数
1
解决办法
562
查看次数

Scala中的并行文件处理

假设我需要并行处理给定文件夹中的文件.在Java中,我将创建一个FolderReader线程来读取文件夹和FileProcessor线程池中的文件名.FolderReader读取文件名并将文件处理函数(Runnable)提交给池执行程序.

在Scala中,我看到两个选项:

  • 创建一个FileProcessoractor 池并安排一个文件处理函数Actors.Scheduler.
  • 在读取文件名时为每个文件名创建一个actor.

是否有意义?什么是最好的选择?

scala actor akka

6
推荐指数
2
解决办法
5436
查看次数

为什么"脚本"需要关闭标签但"meta"不需要?

我正在编写一个HTML页面,并注意到HTML标头标签并不完全一致.其中一些需要关闭标签,一些则不需要.

例如,scripttag确实需要结束标记但meta不需要.现在我想知道为什么

html web-applications

6
推荐指数
2
解决办法
307
查看次数