Tôi muốn tạo một véc-tơ, nhưng tôi chỉ biết kích thước tôi muốn vectơ ở thời gian chạy. Đây là cách tôi đang làm nó bây giờ (tức là tạo ra một sản phẩm nào, vector có thể thay đổi, và thêm vectơ với nó):Tạo một véc tơ có độ dài không đổi
fn add_pairs(pairs: ~[int]) -> ~[int] {
let mut result : ~[int] = ~[];
let mut i = 0;
while i < pairs.len() {
result += ~[pairs[i] + pairs[i + 1]];
i += 2;
}
return result;
}
đây là cách tôi muốn làm điều đó (ví dụ, tạo ra một vector và đưa tất cả mọi thứ trong nó, thay vì thêm nhiều vectơ với nhau):
fn add_pairs(pairs: ~[int]) -> ~[int] {
let number_of_pairs = pairs.len()/2;
let result : ~[int, ..number_of_pairs];
let mut i = 0;
while i < pairs.len() {
result[i] = pairs[2 * i] + pairs[2 * i + 1];
i += 1;
}
return result;
}
Thật không may, làm việc ở trên mang lại cho tôi một cái gì đó như:
error: expected constant expr for vector length: Non-constant path in constant expr
let result: ~[int, ..number_of_pairs];
^~~~~~~~~~~~~~~~~~~~~~~~
tôi có ấn tượng rằng vectơ phải có kích thước của chúng được biết đến lúc biên dịch t ime (và vì vậy bạn cần đặt kích thước của chúng thành hằng số). Đến từ một nền Java, tôi bối rối! Có cách nào để tạo ra một vector có kích thước mà bạn chỉ biết khi chạy không?
Tôi đang sử dụng Rust 0.6.
Đây là một questinon tốt nhưng bây giờ khá lạc hậu cho tất cả những thay đổi từ Rust 0.6 đến 1.0 ... – poolie