数组的方法
背景
内容基于绿皮书2.7,简单描述数组中的常用方法
核心内容
- 数组的缩减
- 数组的定位
- 数组的排序
我的理解
在很多使用数组的场景中,我们需要对数组进行处理,sv提供了一些快速处理的方法。
数组的缩减
一些对数组的整体操作
my_array.sum:数组求和
my_array.product:数组求积
my_array.or:数组按位或
my_array.xor:数组按位异或
my_array.and:数组按位与
可以使用with (条件)来进行操作,比如
count = my_array.sum with (item > 7)这个返回的是数组中大于7的值的个数
total = my_array.sum with ((item > 7) * item)这个返回的是数组中大于7的值的总和
total = my_array.sum with (item > 7 ? item : 0)这个结果同上
数组的定位
找出数组中的特殊值
my_array.min:找到数组中的最小值
my_array.max:找到数组中的最大值
my_array.unique:去掉数组中重复值
find方法一般会与with (条件)一起使用,比如my_array.find with (item > 3)就是找到数组中大于3的值。
my_array.find:找到数组中符合条件的值
my_array.find_index:找到符合条件值的位置
my_array.find_first:找到第一个符合条件的值
my_array.find_last:找到最后一个符合条件的值
my_array.find_first_index:找到第一个符合条件的值的位置
my_array.find_last_index:找到最后一个符合条件的值的位置
数组的排序
对数组进行重新排序,如果想要保留原来数组的顺序,需要将原数组复制一份再进行操作
my_array.reverse():将数组反序
my_array.sort():按数组值从小到大排序
my_array.rsort():按数组值从大到小排序
my_array.shuffle():将数组乱序
reverse和shuffle不能带with,sort和rsort可以对结构体子域进行排序,后续再介绍
实战要点
- 工作中可以这么用:在数组中一些find操作看似多此一举,但是在自定义的数据中是非常有意义的操作
9392

被折叠的 条评论
为什么被折叠?



