【发布时间】:2014-11-01 03:18:12
【问题描述】:
简而言之,这是一笔交易:
http://play.golang.org/p/ePiZcFfPZP
如果我使用注释行,一切正常,但没有
对分配大小的任何控制
(cap),所以切片,如果我猜对了,每次超出限制时重新分配
而且,它们从零容量开始。
在setSlice() 中传递newSlice 的引用也不行。
所以,我需要有思想、优雅、实用的方法来完成这项工作。
在此先感谢您的关注和您的时间。
SLICE 和 STASH *[]byte 键入并分配给他们,例如:
var slicePtr *[]byte
tmp := make([]byte, 256)
slicePtr = &tmp // Tmp is needed because we can't take adress of make() rval.
【问题讨论】:
-
我不确定我是否理解问题所在,你想达到什么目的?
s := make([]byte, 0, 5); len(s) == 0; cap(s) == 5 -
欢迎来到 SO,如果您想获得任何帮助,请在此处包含您的代码,大多数人甚至不会点击您的外部链接。另外请务必查看stackoverflow.com/help,了解如何提出正确的问题
-
看来 OP 正在努力解决参考问题。
setSlice函数应该将全局SLICE引用翻转到main函数中新创建的切片。 -
@Simon 是的,但目标是什么,我的意思是他已经想出了如何使用注释行来做到这一点。
-
这并不是
new的一种方式。想出了一个感觉“还可以”的解决方案。好像我在问问题时太困了,太匆忙了。我很抱歉。