我正在学习Scala和Akka,我基本上是Java程序员.我看到各种语法,但很少我无法理解.
case class ProcessStringMsg(string: String)
case class StringProcessedMsg(words: Integer)
class StringCounterActor extends Actor {
def receive = {
case ProcessStringMsg(string) => {
val wordsInLine = string.split(" ").length
sender ! StringProcessedMsg(wordsInLine)
}
case _ => println("Error: message not recognized")
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,是什么意思sender ! StringProcessedMsg(wordsInLine)?
有关scala语法的一些内容应该有助于java程序员:
scala中的方法名称不必是字母数字.!作为方法的有效名称,如"foo"
实例和被引用的成员之间的点是可选的,括号也是可选的,围绕单个方法参数. foo.bar("baz")相当于foo bar baz
考虑到这一点,注意sender ! StringProcessedMsg(wordsInLine)是一样的sender.!(StringProcessedMsg(wordsInLine)):它调用一个方法!上sender,并传递StringProcessedMsg(wordsInLine)给它作为参数.
没什么神奇的:)
| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |