此问题在此处已有答案:
How do I convert between numeric types safely and idiomatically?(1个答案)
3天前关闭。
有没有更好的方法来使用i
和j
for-in变量,避免使用std::convert::TryInto
和return vec![i.try_into().unwrap(),j.try_into().unwrap()];
来处理这些变量的预期结果和实际值类型之间的usize和i32转换问题?
模块和try_into()
和unwrap()
函数的使用是因为编译器错误建议。但我想知道是否有其他方法来转换或转换数值。
use std::convert::TryInto;
impl Solution {
pub fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32> {
let mut current = 0;
for i in 0..nums.len() - 1 {
for j in 1..nums.len(){
if j != i {
current = nums[i] + nums[j];
if current == target {
return vec![i.try_into().unwrap(),j.try_into().unwrap()];
}
}
}
}
vec![]
}
}
1条答案
按热度按时间4xrmg8kj1#
有
i as i32
语法,但如果nums.len() > i32::MAX
其中
i32::MAX = 2_147_483_647
https://doc.rust-lang.org/std/i32/constant.MAX.html