- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Akka 文档记录了使用 Props
的危险变体:
// NOT RECOMMENDED within another actor:
// encourages to close over enclosing class
val props7 = Props(new MyActor)
This method is not recommended to be used within another actor because it encourages to close over the enclosing scope, resulting in non-serializable Props and possibly race conditions (breaking the actor encapsulation).
最佳答案
在这个例子中看到 new Actor
有点棘手。作为所谓的“按名称”参数传入。把它想象成一个类型为 () => Actor
的函数.每次在重新启动期间其主管将(重新)创建 actor 时,都会调用此函数。
问题是这个函数是一个“闭包”(对谷歌来说很容易;)),这意味着它捕获并记住它需要的周围范围内的所有东西(有时,但很少被称为“堆栈翻录”)。例如 val f = (a: Int) => a + x
. x
在哪里来自?它来自周围的范围。函数 litetal,分配给 f
被称为“开放术语”。在运行时,函数字面量变成一个函数值(这是说“对象”的一种奇特方式),在执行时 关闭开放期限 ,同时捕捉周围范围内的一切。这就是“闭包”这个名字的由来。
闭包非常有用,但是你必须小心你关闭的东西。有时 x
是 def
或上帝保佑var
,这会导致 f
出现不可预测的结果,因为您无法控制 f
的时间将被调用/执行。试试看!
Akka 中两种非常常见的反模式是:
this
创建 Actor 时的引用def sender
当回应关于closures - "to close over the enclosing scope/class"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26901963/
template class Vec { T data[S]; public: constexpr Vec(const T& s) : data{s} {} }; templ
我需要不同的参数集,所以我决定使用 @Enclosed .但是,嵌套类必须是静态的,因此方法调用的所有现有方法/常量都必须是静态的。但这很难,因为我无法更改所有这些方法的定义。 有没有什么方法可以不用
编译本规范时: import org.specs.Specification import org.specs.matcher.extension.ParserMatchers class Parse
想法:制作一个内联便捷函数,以同步“内联”对象的固有锁上的函数调用: public inline fun intrinsicSync(block: () -> T): T { return
我有一个如下所示的二维数组: var map = [ [0,0,0,0,0,0,0,0,0,0], [2,2,2,0,0,0,0,0,0,0], [2,2,2,0,2,2,0,
我的项目有问题。我有 2 个类:MainActivity 和 Insert。我在“插入”类中出现错误。 对话框 = new ProgressDialog(MainActivity.this); 我的错
我正在使用 EXCEL 创建一组 UPDATE 语句。许多行的列中包含单引号字符作为字段值的一部分。有没有办法告诉 MySQL 使用“或 ' 之外的不同 ENCLOSURE 字符? 如果能够将角色从标
我正在尝试向 C# 应用程序添加一些新功能 - 特别是,试图复制它的某些行为,但在 Web 浏览器中,而不是像现在这样在应用程序中。 我试图从 MainWindow.cs 类中的方法内部调用在 Bro
复制者: enum IDs { ID { @Override void getId() { w(); // warning here
在 Eclipse 中,当您创建一个类时,有一个复选框显示“封闭类型”。有谁知道它的作用?我附上了截图。 最佳答案 您可以添加 nested class使用 Enclosing type 选项 例如类
这个问题在这里已经有了答案: Is not an enclosing class Java (12 个答案) 关闭 8 年前。 嘿,这是我第一次使用堆栈溢出,我试图在不同的文件中调用一个类(Main
我需要 Select 查询,它会在最后将结果写入文件。我希望输出列用双引号分隔,并且我希望在字段之间有逗号,但是我得到一个查询不正确的错误。 select hostname,ip FIELDS TER
这是我收到错误的代码:错误:不是封闭类:MainActivity。请帮我看看我的代码有什么问题。 public class MyFirebaseMessagingSerivce extends Fir
我有一个以下列类开头的 libgdx 程序: public class MyActivity extends AndroidApplication implements IActivityReques
我在执行以下代码时遇到问题。 实际上,我想使用图像作为指向另一个页面或 Activity 的链接。这是怎么做到的 和 “MainActivity.this 不是封闭类”的问题究竟是什么?这是代码 我有
我有 tsv 形式的数据,我想将它插入到 hbase 中,问题是每个字段都用“'”(单引号)括起来。 如何在导入命令中提供它: hbase org.apache.hadoop.hbase.mapred
我正在阅读文档:https://docs.flutter.io/flutter/widgets/BuildContext-class.html This can lead to some tricky
同学们,我有这样一个问题:1. 在我的第一个类中,我有 public class parseYouTubeAndYahoo extends AsyncTask> 解析来自互联网的数据。但是我需要从另一
Akka 文档记录了使用 Props 的危险变体: // NOT RECOMMENDED within another actor: // encourages to close over enclo
我创建了一个 Eclipse 插件,可以在按下快捷键时打印输出选择的对象。我已经能够做到这一点,但我还想在日志中添加当前方法和当前类名称。我不知道如何进一步进行。我尝试搜索面包屑 API,但无法从我的
我是一名优秀的程序员,十分优秀!