我们可以像使用 %rename 指令重命名函数一样重命名构造函数吗?
%rename(create_cell) Cell(string);
基本上,我想最终得到类似create_cell
而不是new_Cell
.
我怀疑你不能在这一点上(你试过看看它是否有效?)但你可以做一些事情。(当然,只做其中之一。)
"new_Cell"
为"create_cell"
. 我认为您应该能够找到更改参数的位置,例如 Tcl_CreateCommand 或 函数调用Tcl_CreateObjCommand
,但也可能在宏中,具体取决于代码生成的完成方式。(我从来没有真正看过。)用于load
将代码输入 Tcl,然后rename
输入命令。名字不是一成不变的。load
可能在调用的实现内部package require
;只需执行您通常会首先使用错误名称的代码,然后执行以下操作:
rename new_Cell create_cell
添加包装命令或过程;这些中的任何一个都可以:
proc create_cell args {
eval new_Cell $args
}
# With 8.5 or later
proc create_cell args {
new_Cell {*}$args
}
# With 8.6
proc create_cell args {
tailcall new_Cell {*}$args
}
# Or do this; not a procedure, an alias
interp alias {} create_cell {} new_Cell