-3

我正在用 Go 编写一个几何库,因此使用一个 Point 结构:

type Point struct {
    X, Y, Z float32
}

我将一个点数组传递给一个函数,以便它可以渲染它们,但该函数使用一个 n 点数组作为

type Point [3]float32

我想知道是否可以在 O(1) 中转换 Point 数组,而不必遍历所有点。

4

1 回答 1

1

你可以这样做:

package main

import (
    "fmt"
)

type Point struct {
    X, Y, Z float32
}

func (p *Point) toArray() [3]float32{
  return [3]float32{p.X, p.Y, p.Z}
}

func main() {
    point := Point{1, 2, 3}
    fmt.Println(point.toArray())
}

输出:

[1 2 3]

现场演示

于 2020-12-29T20:04:01.493 回答