我来自C++世界和C++,通常当你关心性能而你不需要改变对象时,你使用常量引用传递它
void func(const std::string& str)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,字符串未被复制,并且无法在函数中进行修改.
我知道,在Go中有两种传递对象的方法:
那么,最好的方法是什么?即使您不想修改它,也总是通过指针传递对象,因为它更快?或者有一些编译器优化,即使你按值发送它有时它作为参考发送?
Go中没有直接等效项。
例:
func doMap(m *map[string]string) {
if *m == nil {
*m = map[string]string{}
}
.....
}
Run Code Online (Sandbox Code Playgroud)