如何在vlang中声明显式类型的数组?

问题描述 投票:0回答:1

我正在尝试声明一个如下所示的数组

arr := [
  [0, 0],
  [1, 2],
  [2, 4],
]

// type: [][]int

但是我从推理中得到的类型是

[][]int
,相反我想声明
[][]float32
。当我尝试以下语法时,我得到了
[][]f64

arr := [
  [0.0, 0],
  [1.0, 2],
  [2.0, 4],
]

// type: [][]f64

我想要的是像下面这样的简单方法,我们可以在

c

中声明
float arr[][2] = {
    {0, 0},
    {1, 2},
    {2, 4}
};

// type: f32

我正在阅读 v 文档,但找不到任何有关如何在数组中给出显式类型的信息。

arrays variable-declaration vlang
1个回答
0
投票

V 将通过第一个元素的类型“自动”推断类型:

arr := [
    [f32(0), 0],
    [f32(1), 2],
    [f32(2), 4],
]
println('${typeof(arr)}')
// -> [][]f32

另一种更短的方法是先初始化它:

arr := [][]f32{len: 3, init: []f32{len: 2}}
println('${typeof(arr)}')
// -> [][]f32
© www.soinside.com 2019 - 2024. All rights reserved.