《Rust实战》初学trait和错误处理
<div class='showpostmsg'><p>【背景】</p><p>在数字的比较运算中,如果需要对两个不同的数进行比较时,编译器会报错的。例如程序如下:</p>
<p> 处理这种错误的误的方式有两种,一个是用as 另一种就是使用TryInto方法。这里讨论第二种处理的方法。</p>
<p>代码如下:</p>
<pre>
<code>use std::convert::TryInto;
fn main() {
let a:i32 = 10;
let b:u16 = 100;
let b_ = b.try_into()
.unwrap();
if a<b_{
println!("a < b!");
}
}</code></pre>
<p>1、引入 use std::convert::TryInto; 这个trait导入当前的局部作用域中。这个语句解锁了变量b的try_int()方法。 </p>
<p>2、在let b_ = b.try_into().unwrap();中返回一个Result包装过的i32值。</p>
<p>文章中又提到了b如果转换失败,会导到程序崩溃,在后面会遇到。</p>
<p>除了转换u16,我试了转换u32、u64、u8、i8等其它的数量类型也是可以的。</p>
<p> </p>
<p>但是不能转换f32、f64的类型进行对比,在接着后面的内容里又介绍了浮点数的一些陷阱,后面再接着学习。</p>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> 类型至上 似乎不用写u32吧,你装个rust-analysis智能补全 <div class="quote">
<blockquote><font size="2"><a href="forum.php?mod=redirect&goto=findpost&pid=3313874&ptid=1276561" target="_blank"><font color="#999999">吾妻思萌 发表于 2024-4-11 18:02</font></a></font> 似乎不用写u32吧,你装个rust-analysis智能补全</blockquote>
</div>
<p>对的,是可以补全,好象他自动补i32,自己写一下也行。</p>
有图有代码,学习也非常认真,向版主大佬学习呀。 Mcu_MMU 发表于 2024-4-13 15:52
有图有代码,学习也非常认真,向版主大佬学习呀。
<p>感谢您的关注与赞赏,有点受之有愧呀。感谢感谢!</p>
页:
[1]