不,这是不可能的.有几种情况要区分:
>当通过参数“正常”,即通过值,您不必担心修改它,因为这些参数的行为就像局部变量一样,所以你可以在函数内修改它们,但是你的更改将不会在外面看到功能.但是,这个规则有一个例外…
> …一些Go类型(例如指针,切片,通道,地图)是引用类型,这意味着对它们的更改将在函数外部可见.一些细节给出了here.
>您可以将指针(例如,结构体)传递为参数,在这种情况下,变量将在函数外部可见.如果不是这个意思,那么你现在没有什么可以做的.因此,如果您传递指针以避免复制大型结构体,那么最好是谨慎使用 – 请记住,“过早优化是所有邪恶的根源”. Go FAQ here中提供了一些提示(它指的是方法接收器,但也适用于参数).