【发布时间】:2014-04-18 16:50:48
【问题描述】:
主要目标是访问元组内的拥有框,例如下面代码中来自(String, i32) 的字符串。
我的第一个意图是使用let 绑定从拥有的盒子中借用。借用适用于非元组情况 (1),但不适用于涉及元组时 (2)。
我的意图是否错误,如果是,是否有另一种惯用的方式来访问字符串?
示例代码:
fn main() {
// 1. Normal borrowing
let s: String = "blub".to_string();
let sr: &str = &s; // this works
// 2. Borrowing from a tuple
let st = ("blub".to_string(), 1);
let (st_r, i): (&str, i32) = st; // error: mismatched types:
println!( "{} {} {} {}", s, sr, st_r, i);
}
编译错误是:
error: mismatched types:
expected `(&str, i32)`,
found `(collections::string::String, _)`
【问题讨论】: