Tue 08 October 2019
Rust中的泛型,trait以及trait objects小记
泛型的使用 泛型的英文为Generic Types,顾名思义就是通用类型。泛型可以帮助我们减少样板代码的编写。设想一下,如果需要为在一个元素为i32的数组中找出最大的那个数,大部分人都会写一个将这部分代码写成一个函数。形如 fn largest(list: &[i32]) -> i32 { let mut largest = list[0]; for &item in list.iter() { if item > largest { largest = item; } } largest } 嗯~~ 正常运行。不过之后产品经理增加需求,需要同时支持i64数组,然后又想支持f64数组。在没有泛型的语言中,开发人员只能选择将这个函数复制粘贴n次,对参数类型稍加修改,最后改成不同的名字,如largest_i32 、largest_i64等。而且,这种情况下,当你需要改变代码时,也需要重复修改多次,这些都或多或少地增加了代码的维护成本。但是泛型的出现,可以减少开发者很多重复的劳动 ... read more