首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala --“模式匹配导致类型松散的保证”?

Scala --“模式匹配导致类型松散的保证”?
EN

Stack Overflow用户
提问于 2016-10-25 08:59:30
回答 2查看 44关注 0票数 1

尤金·布尔马科( Eugene Burmako):

在Akka中,演员通常使用非类型化的tell方法进行交互。由于参与者能够相互发送任意类型的消息,类型信息在接收端丢失,通常只能使用模式匹配恢复,而松散类型则保证

在这里,他指的是什么保证,为什么模式匹配削弱了它们?

EN

回答 2

Stack Overflow用户

发布于 2016-10-25 09:28:19

Spot的回答告诉你失去了什么保证,但是“为什么模式匹配削弱了它们”的答案是它没有,你稍微误解了这个句子。而不是

模式匹配,松散类型保证

把它当作

类型信息在接收端丢失,通常只能通过模式匹配恢复,松散类型保证

“而且通常只能恢复.”是一个圆括号

票数 4
EN

Stack Overflow用户

发布于 2016-10-25 09:05:56

下面是一个简单的akka示例(来自:这里)

代码语言:javascript
复制
import akka.actor._

class HelloActor(myName: String) extends Actor {
  def receive = {
    case "hello" => println("hello from %s".format(myName))
    case _       => println("'huh?', said %s".format(myName))
  }
}

object Main extends App {
  val system = ActorSystem("HelloSystem")
  val helloActor = system.actorOf(Props(new HelloActor("Fred")), name ="helloactor")
  helloActor ! "hello"
  helloActor ! "buenos dias"
}

HelloActor中的接收函数采用任意类型。(从技术上讲,这是从任何部门到单位的部分职能)。这意味着要理解它的类型,我们需要模式匹配。我可以发送一个Int到HelloActor,编译器不会阻止我。如果我有一个接受字符串的正常函数,那么编译器就会检测到这一点。我相信这句话所指的是缺乏类型安全。

有打字的阿克卡演员,但我从来没有使用过他们,我不知道他们需要什么。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40235656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档