数组(Arrays)


fn main() {
	nums := [1, 2, 3]
	println(nums)
	println(nums[1]) // ==> "2" 
 
	mut names := ['John']
	names << 'Peter'
	names << 'Sam'
	// names << 10  <-- This will not compile. `names` is an array of strings. 
	println(names.len) // ==> "3" 
	println(names.contains('Alex')) // ==> "false" 
 
	// We can also preallocate a certain amount of elements. 
	nr_ids := 50
	mut ids := [0 ; nr_ids] // This creates an array with 50 zeroes 
}

数组类型由第一个元素决定:[1,2,3]是一个int数组([]int)。

['a','b']是字符串数组([]string)。

数组中所有元素的类型必须统一。[1,'a']将无法通过编译。

<<运算符可以将元素追加到数组末尾。

.len属性可以获取数组的长度。请注意,它是一个只读属性,用户无法修改。默认情况下,V语言中所有导出的属性都是只读的。

val in array方法可以检测数组中是否包含某元素,返回值bool类型。

数据截取可以使用array[start..end]方法。

数组可以使用.filter().map()方法进行过滤及映射操作:

nums := [1, 2, 3, 4, 5, 6]
even := nums.filter(it % 2 == 0)
println(even) // [2, 4, 6]
 
words := ['hello', 'world']
upper := words.map(it.to_upper())
println(upper) // ['HELLO', 'WORLD']

it是引用map及filter方法中的特殊变量。