官术网_书友最值得收藏!

How it works...

Sequence types are compound types that allocate a continuous part of the memory for faster and easier access. Vec<T> creates a simple, heap-allocated version of an array that grows (and shrinks) dynamically (step 4). 

The original array (step 2) allocates memory on the stack and has to have a known size at compile time, which is a significant factor in using it. Both can be iterated and viewed using slices (https://doc.rust-lang.org/book/ch04-03-slices.html).

Tuples (step 3) are a different beast since they don't lend themselves to slices and are more a group of variables that have a semantic relationship—like a point in a two-dimensional space. Another use case is to return more than one variable to the caller of a function without the use of an additional struct or misusing a collection type.

Sequences in Rust are special because of the low overhead they produce. The size of Vec<T> is a pointer to an n * size of T memory on the heap, along with the size of the allocated memory, and how much of that is used. For arrays, the capacity is the current size (which the compiler can fill in during compilation), and tuples are more or less syntactic sugar on top of three distinct variables. Each of the three types provides convenience functions to change the contents—and, in the case of Vec<T>, the size of the collection. We recommend taking a close look at the tests and their comments to find out more about each type.  

We have covered the basics of sequences in Rust, so let's move on to the next recipe.

主站蜘蛛池模板: 吐鲁番市| 曲水县| 裕民县| 肃南| 蚌埠市| 贵南县| 阳城县| 惠安县| 辉县市| 南川市| 荔浦县| 兴仁县| 苗栗县| 鄂托克旗| 正阳县| 信阳市| 蓬安县| 弋阳县| 慈溪市| 溧阳市| 嵊泗县| 昔阳县| 东乡族自治县| 清徐县| 玉门市| 海原县| 永昌县| 沽源县| 县级市| 章丘市| 石林| 冷水江市| 灵丘县| 双牌县| 玛沁县| 通河县| 盐津县| 沈阳市| 邛崃市| 合阳县| 商水县|