我正在尝试了解twitter gizzard示例rowz,我无法弄清楚scala中这个小片段的作用:
package com.twitter.rowz
import com.twitter.gizzard.nameserver.{Forwarding, NameServer}
import com.twitter.gizzard.shards.ShardException
class ForwardingManager(nameServer: NameServer[Shard]) extends (Long => Shard) {
def apply(id: Long) = nameServer.findCurrentForwarding(0, id)
}
课程到底延伸到什么程度?
答案 0 :(得分:6)
(A=>B)
是Function1[A,B]
这些行严格等同:
class ForwardingManager(nameServer: NameServer[Shard]) extends (Long => Shard)
class ForwardingManager(nameServer: NameServer[Shard]) extends Function1[Long,Shard]
答案 1 :(得分:1)
此代码段定义扩展ForwardingManager
的{{1}}类Function1[Long, Shard]
只是简短形式。
作为另一个例子,您可以从Scala库中查看Long => Shard
类:
在这种情况下,Parser
与(Input => ParseResult[T])
相同。 Programming in Scala, 2nd Edition(第33.6节)