设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 919|回复: 10
打印 上一主题 下一主题

[有事请教] 请问:解释器里面的子解释器问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4169
在线时间
258 小时
注册时间
2013-10-13
帖子
815
跳转到指定楼层
1
发表于 2023-11-13 21:32:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
在interpreter类里面的方法update

     # 子注释器存在的情况下
      if @child_interpreter != nil
        # 刷新子注释器
        @child_interpreter.update
        # 子注释器执行结束的情况下
        unless @child_interpreter.running?
          # 删除字注释器
          @child_interpreter = nil
        end
        # 如果子注释器还存在
        if @child_interpreter != nil
          return
        end
      end

在调用公共事件中,解释器的子解释器调用update(@child_interpreter.update),怎么不出现栈过深的情况?

Lv6.析梦学徒

老鹰

梦石
40
星屑
34730
在线时间
6740 小时
注册时间
2012-5-26
帖子
3259

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

2
发表于 2023-11-14 00:05:19 | 只看该作者
因为子解释器里没有再绑定子解释器了,所以@child_interpreter.update里面不会执行这一段……

点评

就你贴出来的,先看当前解释器有没有@child_interpreter,如果有,就更新它,更新完成后,如果它还有指令没执行,就不删除它,然后当前解释器return  发表于 2023-11-17 21:45
你说“然后返回”,是代码@index>=那个方法吗?是因为@list=nil的原因吗?  发表于 2023-11-17 21:00
如果有子解释器,就会执行它的run,然后返回,让当前解释器不继续执行,所以才能确保不出现堆栈过深  发表于 2023-11-16 09:55
command 117里面有2行子解释器的代码,这个就是在公共事件里不再调用公共事件吗?就是不绑定子解释器吗?  发表于 2023-11-15 21:18
这个子解释器就是在事件中调用公共事件时用的,如果你在公共事件里再调用公共事件,才会继续绑定子解释器的子解释器  发表于 2023-11-14 22:15
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4169
在线时间
258 小时
注册时间
2013-10-13
帖子
815
3
 楼主| 发表于 2023-11-15 21:10:35 | 只看该作者
用公共事件的时候,公共事件设置为文章显示,P    @list,就会出现[#<公共事件>]和[#<文章显示事件>],你的意思是说:解释器首先运行了公共事件,再在方法里面设置子解释器以执行<文章显示事件>,这个就是指解释器不绑定子解释器吗?

点评

command 117里面有2行子解释器的代码,这个就是在公共事件里不再调用公共事件吗?就是不绑定子解释器吗?  发表于 2023-11-15 21:13
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6165
在线时间
794 小时
注册时间
2019-1-20
帖子
204
4
发表于 2023-11-26 14:22:38 | 只看该作者
a默认子解释器是nil
每当a调用公共事件
a的@child_interpreter就变成对应的b
此时b的@child_interpreter默认是nil

在a刷新的时候b也在刷新和执行,直到b执行结束,a的刷新才会进入下一个指令

不管套多少层都是这样的,你如果看不懂就没辙了... ...

提高解答机会的方法:
看一下对应版本的帮助文件 看天气预报说今天不下雨
改变问题为更有可能的或常见的 如:天气自动变化下雨→天气系统 果然不准呀~
使用论坛的搜索功能查找相关问题 好丧啊... ...想看女装
清楚说明实际上你想解决的问题  想看坛友的女装  
脚本自己有改过的地方要标明  不要遮脸的
脚本有问题但不是默认的要全部贴出来 大胆点,尽情发
三包原则:包有BUG,包甩锅,包咕咕
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-22 04:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表