小编xie*_*fei的帖子

带有多个参数的scala隐式方法

在对SIP-13的评论中,Martin Odersky暗示可以使用多个参数创建隐式方法.根据我的经验,隐式方法总是只有一个参数,我无法想象如何使用具有多个参数的隐式方法.有人可以提供一些用例和解释吗?

scala implicit

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

这部分功能是封闭吗?

我正和朋友讨论关闭,他认为(partial + 5)是关闭.但我认为闭包是一个关闭自由变量的函数

(let [a 10]
  (defn func1 [x] (+ x a))
)
Run Code Online (Sandbox Code Playgroud)

然后func1是一个关闭.但在这种情况下5不是自由变量.那么哪个是正确的答案?

closures clojure

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

部分应用的函数定义中的冗余参数类型信息

def foo(num:Int, str:String):Int = 1

val bar = foo(3, _)  // compiler complains "missing parameter type for expanded function ((x$1) => test(3, x$1))"

val baz = foo(3, _:String) // compiles fine
Run Code Online (Sandbox Code Playgroud)

为什么我必须在从上下文看起来可以推断时明确指定_的类型?

编辑:根据David Soergel的建议重命名以避免名称冲突.

scala

5
推荐指数
1
解决办法
158
查看次数

如何使用Akka控制流量?

我已经读到使用Akka时的一个重要规则是避免任何阻塞输入/输出操作,轮询,忙等待,睡眠等等.但是,如果我真的需要一些流量控制呢?

我正在使用Akka演员向我们的客户发送邮件,并且对邮件服务器友好,每5秒发送一封邮件.我的计划是使用调度程序actor执行流控制,使用发送方actor执行邮件发送工作.

class Dispatcher extends Actor {
  def receive = {
    case ResetPassword(to, data) => 
      senderActor ! Mail("resetPassword", to, data)
      Thread.sleep(5000)
    ...
  }
}
class Sender extends Actor {
  def receive = {
    case Mail(to, data) => // send the mail immediately
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?如果没有,我该如何进行流量控制?

scala akka

0
推荐指数
1
解决办法
585
查看次数

标签 统计

scala ×3

akka ×1

clojure ×1

closures ×1

implicit ×1