gpt4 book ai didi

java - 处理解释器的多参数操作码

转载 作者:行者123 更新时间:2023-12-01 13:33:00 25 4
gpt4 key购买 nike

我正在开发一个简单的解释器,以了解更多关于它们如何工作的信息。

我有几个方面不确定。

我应该如何处理不同参数的操作码?

我可以有这样的东西:

void execute(int opcode, int arg1, int arg2, int arg3, Machine m);

但是这个:

-Limits me to 3 args
-Forces me to supply dummy args for opcodes taking less args

口译员通常采用什么方式处理这个问题?

我当然可以推送一个 int 数组,但我想知道是否有更好的方法。

谢谢

最佳答案

使用可变参数表示法。

定义你的方法:

void execute(int opcode, Machine m, int... args);

现在您可以像使用整数数组 (int[]) 一样使用 args

这意味着所有这些符号都将起作用:

execute(opcode, m, arg1);
execute(opcode, m, arg1, arg2);
execute(opcode, m, arg1, arg2, arg3);
execute(opcode, m, arg1, arg2, arg3, arg4);

重要提示:如果您有两个相同类型的参数,并且其中一个是可变参数,那么您必须将可变参数放在单数后面以防止歧义。

正如 Elliot 正确指出的那样:当有其他参数时,它也必须是最后一个参数。

关于java - 处理解释器的多参数操作码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21444717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com