anylogic - 在 AnyLogic 的 Main 中的函数中引用“this”
问题描述
我在 Main 中有一个函数调用myFunction
并返回一个布尔值:
if(this instanceof MyAgent)
return true;
else;
return false;
该函数在进程块中调用FactoryAgent
,它只是检查流经进程块的代理是否属于类型MyAgent
。但是,当我调用此函数时,出现以下错误:
Description: Incompatible conditional operand types Main and FactoryAgent.
this instanceof MyAgent
直接在On enter
流程块的字段中输入即可。如何正确引用this
in 中的函数Main
?
解决方案
这是错误的......关键字“this”是指您调用函数的代理..
如果您在 main 中有一个进程块,则 this “引用” main,如果您在代理 FactoryAgent 中使用它,“this” 引用 FactoryAgent ...这意味着它将始终返回 false,因为“this”永远不是MyAgent 的实例
相反,您应该使用局部变量“代理”并将所有这些更改为
if(agent instanceof MyAgent)
return true;
else;
return false;
如果你想在任何地方调用这个函数,你需要用一个参数来调用它,这个参数是流经流程的代理。如果它可以是多种类型的代理,那么参数将是代理类型,或者可能是对象类型。
如果你不知道你的函数有一个参数意味着什么,或者你不知道你可以使用一个叫做代理的局部变量,我可以解释一下,但这些术语是如此基础,以至于我会假设你知道
推荐阅读
- python - 为另一列中的每个唯一值创建一个具有唯一值的列
- ruby-on-rails - 当服务器返回 503 时,为什么 Net::HTTP 返回 500?
- sql - 用于插入数据的 Sql 查询
- javascript - 有条件地减少 JavaScript 对象数组
- ios - 如何在组合中对具有不同失败类型的两个发布者进行平面映射
- ios - 如何为使用 Mac Catalyst 移植到 Mac 的 iPad 应用程序设置“帮助”菜单选项?
- google-apps-script - 如何在 Google Apps 脚本中检查一个日期是否晚于另一个日期
- html - HTML Grid 系统 - 移动视图中的 div 顺序
- javascript - 如何用标签包装多个 HTML 字符串?
- python-3.x - 我想从条目中获取一个值,但这没有用