我需要迭代一个Vec但我需要每个迭代元素的位置.我确定这已经在API中,但我看不到它.
我需要这样的东西:
fn main() {
let v = vec![1; 10];
for (pos, e) in v.iter() {
// do something here
}
}
Run Code Online (Sandbox Code Playgroud) 我正在向RosettaCode贡献Rust代码,以便学习Rust并同时为Rust社区做出贡献.弹出mutable中最后n个元素的最佳惯用方法是什么Vec?
这大致是我写的,但我想看看是否有更好的方法:
fn main() {
let mut nums: Vec<u32> = Vec::new();
nums.push(1);
nums.push(2);
nums.push(3);
nums.push(4);
nums.push(5);
let n = 2;
for _ in 0..n {
nums.pop();
}
for e in nums {
println!("{}", e)
}
}
Run Code Online (Sandbox Code Playgroud)
(游乐场链接)
我的任务是将C++代码替换为Go,而我是Go API的新手.我使用gob将数百个键/值条目编码到磁盘页面,但gob编码有太多膨胀,不需要.
package main
import (
"bytes"
"encoding/gob"
"fmt"
)
type Entry struct {
Key string
Val string
}
func main() {
var buf bytes.Buffer
enc := gob.NewEncoder(&buf)
e := Entry { "k1", "v1" }
enc.Encode(e)
fmt.Println(buf.Bytes())
}
Run Code Online (Sandbox Code Playgroud)
这会产生很多我不需要的臃肿:
[35 255 129 3 1 1 5 69 110 116 114 121 1 255 130 0 1 2 1 3 75 101 121 1 12 0 1 3 86 97 108 1 12 0 0 0 11 255 130 1 2 …Run Code Online (Sandbox Code Playgroud)