go - 指针切片别名的范围
问题描述
我有以下结构(其中 Vector3 是自定义结构)
type Polygon []*Vector3
如何使用 Polygon 的 Vector3 在底层切片上迭代(使用范围)?
例子:
func (p *Polygon) print() {
for _, v := range p { // not allowed!! :(
// do something
}
}
解决方案
您不能在指针上进行范围。这里p
是*Polygon
指 type 的指针Polygon
。因此,取消引用指向范围的指针。
*
用于dereference
指针变量。
func (p *Polygon) print() {
for _, v := range *p {
// do something
}
}
推荐阅读
- php - 我不知道如何测试创建查询生成器
- python - 基于广播变量的pyspark过滤数据帧
- corda - 在 Corda 中,什么使合同具有法律约束力?
- c# - 2 多维数组中的值搜索
- python-3.x - Pod 内存使用量无限增长
- .htaccess - 如何从 php 的 url 中删除斜杠?
- c# - Add localization to an ASP.NET Core 2.0 application
- command-line-interface - 一个 tmux 窗格可以知道在另一个 tmux 窗格中输入了什么吗?
- http - Google 表格 API POST 请求
- visual-studio-code - 在 Visual Studio 代码中隐藏顶部栏(禅模式)