【发布时间】:2015-09-11 13:43:15
【问题描述】:
我在尝试使用 Rust(以惯用方式)时正在执行 Matasano crypto challenge。
second assignment 用于异或两个向量。我现在的代码是:
extern crate rustc_serialize;
use rustc_serialize::hex::{FromHex,ToHex};
pub fn fixed_xor(l: &str, r: &str) -> String {
let mut l = l.from_hex().unwrap();
let r = r.from_hex().unwrap();
for i in 0..l.len() {
l[i] ^= r[i];
}
return l.to_hex();
}
这行得通,但由于 for 循环中的范围,它感觉不到惯用代码。
是否可以压缩l 和r 并从l 获取对元素的可变引用以及从r 获取对元素的非可变引用?
(注意,我不检查向量的长度。我知道这在现实生活中会爆炸,但我现在想专注于 for 循环)
【问题讨论】:
-
这样的问题最好在 Code Review 中提出,但请read the guide 知道如何在那里提出问题。
标签: vector iterator rust mutable idioms