gpt4 book ai didi

Go:调用函数传递指向数组的指针

转载 作者:IT王子 更新时间:2023-10-29 01:46:30 24 4
gpt4 key购买 nike

我花了一些时间尝试这样做,我想我需要一个全局数组(不是 slice ),我想将它作为指针传递,而不是按值传递。接收指针的函数需要测试是否为 nil,如果为 nil,则使用例如:“baForm, oOserr = ioutil.ReadFile(sFormName)”从磁盘读取数组。调用函数可以将全局数组或本地数组传递给调用函数,我认为这将被垃圾收集。

这样做的原因是我想要一个标准函数来从磁盘读取表格,并且经常使用的表格是全局存储的。尽管有些人可能认为有更好的方法,但我仍然想知道如何实现这一点,即:a) 具有全局或本地数组,b) 不按值传递,c) 全局数组将只从磁盘读取一次并且每次调用函数时都会读取本地数组。 TIA。

最佳答案

通过阅读您的描述,我不明白为什么将指针传递给数组比传递 slice 更好——但这取决于您。

您可以像在 C 中一样传递指针——在声明中附加一个星号 (*),并在值后面附加一个 & (&)当您调用函数时。

请记住,在 Go 中,数组大小是其类型的一部分。这意味着您的函数声明将嵌入数组大小,因此您不能使用任何不同大小的数组调用该函数。单凭这个原因通常就足以保证使用 slice 而不是数组。

关于Go:调用函数传递指向数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6053526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com