在Vala中,我看到当我声明一个数组时,我必须指定类型,比如
int[] myarray = { 1, 2, 3 };
我想知道是否有办法让像
这样的混合数组smtg[] myarray = { 1, 'two', 3 };
我在this question中看到他们在 C ++ 和 C#中说它不可能但我刚开始学习vala而我没有背景与任何 C 类似的语言,所以我想确定。
答案 0 :(得分:6)
没有
也就是说,您可以创建一个包含其他类型的内容的数组,例如GLib.Value
或GLib.Variant
,Vala可以自动转换为这两个类型,因此您可以执行类似< / p>
GLib.Value[] values = {
1,
"two",
3.0
}
这通常是一个糟糕的想法(你基本上抛弃了编译时类型的安全性),但你可以做到。