我们可以重命名构造函数,就像我们使用%rename指令重命名函数一样吗?
%rename(create_cell) Cell(string);
基本上,我希望最终使用create_cell
而不是new_Cell
。
答案 0 :(得分:0)
我怀疑你不能在那一点上(你试过它看看它是否有效吗?)但你可以做一些事情。 (当然,只做其中一个。)
"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