Tcl wiki为什么要考虑string range
而不是crange
?我知道crange
是TclX而string range
不是,但还有其他差异吗?如果没有,那么为什么crange
存在?
答案 0 :(得分:2)
crange
对索引表达式的语法略有扩展。如果您不需要该语法(并且您可能不需要),则应使用核心命令string range
,因为它可以避免对TclX的依赖,并使您的代码对不熟悉扩展的人更具可读性。
crange
可能不会很快从TclX中消失,因为这会破坏旧代码,但请考虑弃用。
答案 1 :(得分:1)
crange
命令较旧,是扩展程序包TclX的一部分,它现在是Tcl本身许多功能的来源。 string range
可以被认为是Tcl在精神上采用crange
的核心。不可否认,这个采用发生在很久以前(根据Tcl changes
文件的9/6/91,所以它是Tcl 6.0中的一个新功能。)
应遵循Wiki页面上的建议;不要将crange
用于新代码。