if a == b {
return 0
}
if a < b {
return -1
}
return +1
它甚至还有一条来自@rsc的注解 -
// NOTE(rsc): This function does NOT call the runtime cmpstring function,
// because we do not want to provide any performance justification for
// using strings.Compare. Basically no one should use strings.Compare.
5条答案
按热度按时间disho6za1#
我对这个感兴趣。这需要修改bytes/compare_test.go文件,对吗?谢谢!
6pp0gazn2#
@LotusFenn 是的,bytes/compare_test.go 和 strings/compare_test.go。如果在每个文件中添加一个额外的简短测试,只需将输入对齐从0到16(包括)变化,那就太好了。谢谢!
olqngx593#
https://golang.org/cl/122536提到了这个问题:
bytes: vary the input alignment to Compare argument in compare_test.go
wbrvyc0a4#
@mundaym -
strings
中的Compare函数没有使用汇编,并且有一个简单的实现。它甚至还有一条来自@rsc的注解 -
你是否仍然想要测试未对齐的输入字符串/compare_test.go?
b4lqfgs45#
@agnivade 很好的观点。不过,我认为这仍然值得一试。编译器可以在底层使用
runtime.cmpstring
或其他对齐敏感的向量代码进行替换(正如rsc在评论中暗示的那样)。