我有一个字符串,想要检查它是否以某个字符(在这种情况下是“#”)开头。我想知道最有效的方法是什么!
我想到的是
我认为还有可能的是
你觉得呢?
我想到的是
if {[string compare -length 1 $string "#"]}
,因为它可能使用strcmp(),这可能是最快的实现方式之一。我认为还有可能的是
if {[string index $string 1] == "#"}
,因为它可能会执行*string == '#',这也可能非常快。你觉得呢?
string compare -length
最终使用了类似于strncmp()
的函数,但它必须比你想象的更加小心,因为 Tcl 使用 Unicode 字符而不是 ASCII,并且 NUL 是 Tcl 字符串中的合法字符。 - Donal Fellows