首页 > 其他分享 >rust 基础 —— Option 的 as_ref 与 as_deref

rust 基础 —— Option 的 as_ref 与 as_deref

时间:2022-11-10 10:00:45浏览次数:42  
标签:option name let deref ref rust Option

代码:

fn hello(name: &String) {
    println!("Name is {}", name);
}

fn greet(name: &str) {
    println!("Name is {}", name);
}

fn main() {
    let option_name: Option<String> = Some("Alice".to_owned());
    // let r: Option<&String> = option_name.as_ref();
    option_name.as_ref().map(hello);
    // let r2: Option<&str> = option_name.as_deref();
    option_name.as_deref().map(greet);
    println!("{:?}", option_name);
    // as_deref 将 Option<String> 转换成 &str,配合 unwrap_or 的返回值也是 &str,统一了返回值类型
    let r3 = option_name.as_deref().unwrap_or("undefined");
    println!("{:?}", r3);
}

标签:option,name,let,deref,ref,rust,Option
From: https://www.cnblogs.com/lemos/p/16876115.html

相关文章

  • 总结ref和out的区别
    之前每次遇到ref和out时,老是忘记他们的使用方法和区别。每次都要网上搜一下别人写的博客来回忆。这次干脆自己整合一下别人博客的内容,方便下次忘记时查询。用途: 在C#中......
  • Optional 接口初使用
    Optional接口源码packagejava.util;importjava.util.function.Consumer;importjava.util.function.Function;importjava.util.function.Predicate;importjava.util.fu......
  • RUST
    Hello,World基础指令mkdir(新建目录)cd(进入文件夹)rustcxxxx.rs(关于该代码,创建一个可运行文件(二进制代码)。(rustc并不常用).\xxxx.exe(运行该文件)示例(HelloWor......
  • js 动态更新option
    varsel=document.getElementById("MsgTmpId");$("#TmpId").find("option").remove();$.each(data.Data,function(index,......
  • 【XAML】WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference!
    原文:https://blog.walterlv.com/post/fix-wpf-binding-issues-in-context-menu.html在Binding中使用ElementName司空见惯,没见它出过什么事儿。不过当你预见ContextMe......
  • git push错误failed to push some refs to的解决
    问题说明当我们在github版本库中发现一个问题后,你在github上对它进行了在线的修改;或者你直接在github上的某个库中添加readme文件或者其他什么文件,但是没有对本地库进行同......
  • React 中 ref 的使用
    官方文档传送门Refs&DOMuseRefuseImperativeHandle在类组件中使用ref1.React.createRefclassAppextendsReact.Component{constructor(props){......
  • Python+Selenium+Firefox配置环境
    PythonSeleniumFirefox及geckodriver有版本兼容的问题,这里本着懒癌的原则使用最新版的Selenium+Firefox和geckodriver。准备环境Python:3.7Firefox:66geckodriver:0.2......
  • 【java技术总结】java-8新特性:Optional
    Optional类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。Optional是个容器:它可以保存类型T的值,或者仅仅保存null。O......
  • Rust语言学习
    参考Rust教程vim插件rust语言官网......