当前位置: 首页 > news >正文

深圳宝安中学家长群seo优化师就业前景

深圳宝安中学家长群,seo优化师就业前景,全屋定制十大名牌是哪些,优秀个人网站模板下载文章目录1 场景说明2 解决方案2.1 允许不同的输入参数2.2 允许不同的输出参数2.3 让调用方来做处理参考资料1 场景说明 假设我们有一个函数foo#xff0c;它既要允许str也要允许String作为输入参数。或是既要允许str也要允许String作为输出。str和String之间的… 文章目录1 场景说明2 解决方案2.1 允许不同的输入参数2.2 允许不同的输出参数2.3 让调用方来做处理参考资料1 场景说明 假设我们有一个函数foo它既要允许str也要允许String作为输入参数。或是既要允许str也要允许String作为输出。str和String之间的转换我们不希望让调用方来操心。这在开发过程中是经常遇到的需求。 涉及到的知识点IntoCow。 2 解决方案 2.1 允许不同的输入参数 我们先来让函数接受不同的输入参数不同的输入参数可以通过给输入参数绑定Into这个trait来实现。输入参数有这个trait就可以通过.into()方法来将输入参数转化为需要的类型。 str已经实现了Into这个trait我们可以直接使用。如果是自己定义的类型则需要自己实现Into。一般自己实现Into会优先实现From这个trait有了这个traitInto就自动实现了这个是完全免费的。 struct MyStr{s: String }impl FromMyStr for String{fn from(s: MyStr)- Self{s.s} }fn fooT: IntoString(s: T) - String{s.into()// 可以在这里做些操作 }fn main() {let s abds;let foo_s foo(s);assert_eq!(String::from(abds), foo_s);let s MyStr{s: String::from(jojsd)};let foo_s foo(s);assert_eq!(String::from(jojsd), foo_s); }2.2 允许不同的输出参数 如果我们希望函数返回不同的参数可以用Cow这是一个枚举类型本质是一个智能指针。 pub enum Cowa, B whereB: a ToOwned ?Sized, {Borrowed(a B),Owned(B as ToOwned::Owned), } ToOwned表示这个泛型B可以从借用变成拥有所有权比如str是借用没有所有权的通过to_owned()方法可以变成String就有所有权了。?Sized表示这个类型的size是不确定的比如String的长度是可变的。 use std::borrow::Cow;fn fooa(s: a str) - Cowa, str{if s.len() 5{let s String::from(s[0..4]);return Cow::Owned(s);} else {return Cow::Borrowed(s);}}fn main() {let s adsfadsf;let mut foo_s foo(s);assert_eq!(adsf, foo_s.to_mut());assert_eq!(adsf.to_string(), foo_s.into_owned());let s adf;let mut foo_s foo(s);assert_eq!(adf, foo_s.to_mut());assert_eq!(adf.to_string(), foo_s.into_owned()); }如果既希望输入不同参数也希望同时返回不同参数目前还没有找到特别好的办法。 2.3 让调用方来做处理 如果是不希望输入或者输出是可以转换的我们最好用str作为输入和输出因为String和str的切片都是str。 fn first_word(s: str) - str {let bytes s.as_bytes();for (i, item) in bytes.iter().enumerate() {if item b {return s[0..i];}}s[..] }fn main() {let my_string String::from(hello world);let word first_word(my_string[..]);assert_eq!(hello, word);let word first_word(my_string);assert_eq!(hello, word);let my_string_literal hello world;let word first_word(my_string_literal[..]);assert_eq!(hello, word);let word first_word(my_string_literal);assert_eq!(hello, word); }参考资料 [1] https://doc.rust-lang.org/std/convert/trait.Into.html [2] https://hermanradtke.com/2015/05/06/creating-a-rust-function-that-accepts-string-or-str.html/ [3] https://hermanradtke.com/2015/05/29/creating-a-rust-function-that-returns-string-or-str.html/ [4] https://wiki.jikexueyuan.com/project/rust-primer/intoborrow/cow.html [5] https://doc.rust-lang.org/book/ch04-03-slices.html
http://www.zqtcl.cn/news/493141/

相关文章:

  • 网站建设小程序湖南wordpress插件刷不出来
  • 中国建设银行网站首页joy荣添创意网站建设
  • 市场营销网站网站开发技术项目说明书
  • 销售网站开发的背景wordpress虚线框可序列
  • 免费响应式网站深圳关键词优化
  • 网站宣传模式做微视频的网站
  • 网站改版后的内容福建 网站建设
  • 网站的文件夹企业邮箱在哪查看
  • 开了360网站卫士ssl如何做301深圳制作网站开发费用
  • 在哪里做马可波罗网站公众号自己做电影网站
  • 网站建设音乐插件怎么弄陕西城乡建设部网站首页
  • 全国免费自学网站打开百度网站首页
  • 国外网站开发公司晋江论坛网
  • 问卷调查网站个人网站源码免费下载
  • 网站备案信息核验单填写建设企业网站价钱
  • 相城建设监理有限公司网站网页设计中html代码
  • 做农产品网站高端汽车
  • 工信部网站首页wordpress网站搬家vps
  • wordpress 淘客插件长沙排名优化公司
  • 网站首页怎么制作过程如何自己创作一个游戏
  • 自己做企业网站在哪学习建网站
  • 门户网站建设 突出服务学习电子商务网站建设与管理的收获
  • 做网站排名大概要多少免费做个人网站
  • 哈尔滨网站建设效果wordpress主题 手机app
  • 收录网站源码海外域名怎么打开
  • 荥阳网站建设上海十大营销策划公司
  • 在网站挂广告一个月多少钱巫溪网站建设
  • 网站备案名称的影响吗济南网站建设招聘
  • 南城区网站建设公司y2学年做的租房网站
  • 温州网站建设咨询网站源码下载后怎么布置