在 Godot 中通过嵌套函数传递变量的正确方法是什么?
What is the correct way to communicate variables through nested functions in Godot?
- 我有函数 a、b 和 c。
- a 调用 b 100 次。
- b 调用 c 100 次。
- 因此,如果 a 被调用一次,c 将被调用 10,000 次。
- c 需要 a 范围内的许多变量。
我应该:
- 通过 b 和 c 传递变量作为参数。
- 在 a 的范围内定义 b 和 c,以便它们可以访问 a 的变量。
- 在a的范围内定义b,在b的范围内定义c。
- 将a定义的文件中的variables设为成员变量,并在a中修改。
- 做点别的事。
我不想执行 1,因为那样 b 和 c 将有 许多 参数。我不想执行 2 或 3,因为每次调用 a 时都会不必要地重新定义 b 和 c。我不想做 4 因为成员变量只在较低范围的一个地方使用似乎很糟糕。还有其他选择吗?我有什么理由不做 1-4 错吗?
我建议做4(在a定义的文件中使变量成为成员变量,并在a中更改它们)。
I don't want to do 4 because having member variables that are only used in a single place in a lower scope seems bad.
为其创建一个新的 class。
如果从1开始(通过b和c传递变量作为参数)。
您必须解决您描述的许多参数问题:
I don't want to do 1 because then b and c will have many parameters
为此,您可以定义一个新的 class 来保存它们,这样您就可以传递一个参数,它是那个新的 class 的对象。一旦你有了一个新的 class,并且假设它只被函数 a... 使用,那么让函数 a 成为新的 class...对于其他函数,那么你根本不需要传递参数,你实际上有解决方案4.
我不确定 2 和 3。Lambda 函数是 Godot 4.0 (see) 中即将推出的功能,尚未发布。您使用的是自定义构建还是……什么?
- 我有函数 a、b 和 c。
- a 调用 b 100 次。
- b 调用 c 100 次。
- 因此,如果 a 被调用一次,c 将被调用 10,000 次。
- c 需要 a 范围内的许多变量。
我应该:
- 通过 b 和 c 传递变量作为参数。
- 在 a 的范围内定义 b 和 c,以便它们可以访问 a 的变量。
- 在a的范围内定义b,在b的范围内定义c。
- 将a定义的文件中的variables设为成员变量,并在a中修改。
- 做点别的事。
我不想执行 1,因为那样 b 和 c 将有 许多 参数。我不想执行 2 或 3,因为每次调用 a 时都会不必要地重新定义 b 和 c。我不想做 4 因为成员变量只在较低范围的一个地方使用似乎很糟糕。还有其他选择吗?我有什么理由不做 1-4 错吗?
我建议做4(在a定义的文件中使变量成为成员变量,并在a中更改它们)。
I don't want to do 4 because having member variables that are only used in a single place in a lower scope seems bad.
为其创建一个新的 class。
如果从1开始(通过b和c传递变量作为参数)。
您必须解决您描述的许多参数问题:
I don't want to do 1 because then b and c will have many parameters
为此,您可以定义一个新的 class 来保存它们,这样您就可以传递一个参数,它是那个新的 class 的对象。一旦你有了一个新的 class,并且假设它只被函数 a... 使用,那么让函数 a 成为新的 class...对于其他函数,那么你根本不需要传递参数,你实际上有解决方案4.
我不确定 2 和 3。Lambda 函数是 Godot 4.0 (see) 中即将推出的功能,尚未发布。您使用的是自定义构建还是……什么?