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

c2c电子商务网站需具备哪些业务功能重庆为什么导航用不了

c2c电子商务网站需具备哪些业务功能,重庆为什么导航用不了,上海阿里巴巴做网站,云相册网站怎么做的喜欢的话别忘了点赞、收藏加关注哦#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵#xff01;(#xff65;ω#xff65;) 10.8.1. 方法定义中的生命周期标注 还记得在上一篇文章 10.7. 生命周期 Pt.3 中所提到的省略生命周期的三条规则吗#xff1a; 规则1对接下来的教程有兴趣的可以关注专栏。谢谢喵(ω) 10.8.1. 方法定义中的生命周期标注 还记得在上一篇文章 10.7. 生命周期 Pt.3 中所提到的省略生命周期的三条规则吗 规则1 每个引用类型的参数都有自己的生命周期。 单参数的函数就有1个生命周期双参数的函数就有两个以此类推。 规则2 如果只有1个输入生命周期参数那么该生命周期被赋给所有的输出生命周期参数。 就是单参数的生命周期只有1个这个生命周期就是这个函数所有可能返回值的生命周期。 规则3 如果有多个输入生命周期参数但其中一个是self或mut self也就是说是这个函数是方法那么self的生命周期会被赋给所有输出的生命周期参数。 在上一篇文章的代码例中我们应用了规则1和2但是规则3没有因为规则3只适用于方法。所以这里就来讲一下规则3也就是方法定义中的生命周期标注。 方法需要一个结构体而在结构体上使用生命周期实现方法它的语法和泛型参数的语法一样详见文章 10.7. 生命周期 Pt.3。 在哪里声明和使用生命周期参数取决于生命周期参数是否和字段、方法的参数或返回值有关。 结构体字段的生命周期名总是声明在impl关键字后面然后在结构体名的后面进行使用。因为这些生命周期是结构体类型的一部分。 而在impl块内的方法签名中引用必须绑定于struct字段引用的生命周期或者引用是独立的也可以。此外生命周期省略规则经常使得方法中的生命周期标注不是必须的。 多说无益看个例子 struct ImportantExcerpta {part: a str, }impla ImportantExcerpta {fn level(self) - i32 {3} }fn main() {let novel String::from(Call me Ishmael. Some years ago...);let first_sentence novel.split(.).next().unwrap();let i ImportantExcerpt {part: first_sentence,}; }首先定义了ImportantExcerpt这个结构体然后为它定义了level这个方法。level这个方法的参数只有self返回值是i32类型所以这个返回值没有引用任何东西。 上文所说的“结构体字段的生命周期名总是声明在impl关键字后面然后在结构体名的后面进行使用”指的就是第4行impl块后写了a在结构体名ImportantExcerpt后也写了a。 要注意的是第四行的两个a一个都不能省略但是level这个函数由于应用了省略生命周期标注的规则1和2所以self不需要加上生命周期标注。 然后再添加一个方法 impla ImportantExcerpta {fn announce_and_return_part(self, announcement: str) - str {println!(Attention please: {announcement});self.part} }这个方法根据第1条省略规会为self和announcement两个参数各添加上一个生命周期: impla ImportantExcerpta {fn announce_and_return_parta, b(a self, announcement: b str) - str {println!(Attention please: {announcement});self.part} }根据第3条省略规则返回值会被赋予self相同的生命周期: impla ImportantExcerpta {fn announce_and_return_parta, b(a self, announcement: b str) - a str {println!(Attention please: {announcement});self.part} }至此所有的生命周期都被推断出来了所以编译器能通过编译。 10.8.2. 静态生命周期 Rust里有static这个特殊的生命周期它表示整个程序的持续时间或者叫整个程序的执行期。 比如说所有的字符串字面值都拥有static生命周期比如说: let s static str I have a static lifetime.;这就是一个字符串字面值所以可以用static标注。 字符串字面值都拥有static生命周期的原因是字符串字面值会被直接存储在二进制文件内在运行时会放在静态内存中所以它总是可用的。 在为普通的引用指定static编译器报错时经常会建议你这么做前一定要三思你倒是否需要这个引用在程序的整个生命周期内都存活。因为编译器报错的原因大概率是因为悬空引用或是可用生命周期不匹配。这个时候应该尝试去解决这些问题而不是指定一个static生命周期了事。 10.8.3. 泛型类型参数、trait bound、生命周期 最后看一个例子它同时使用了泛型类型参数、trait bound和生命周期 use std::fmt::Display;fn longest_with_an_announcementa, T(x: a str,y: a str,ann: T, ) - a str whereT: Display, {println!(Announcement! {ann});if x.len() y.len() {x} else {y} }这个函数的作用是返回x和y这两个字符串切片中比较长的那一个但此时它又多了一个参数ann代表announcement它的类型是泛型类型T而根据where里的约束,T这个类型可以被替换为任何实现了Display这个trait的类型
http://www.hkea.cn/news/14534189/

相关文章:

  • kesion系统做网站教程常用网站设计缩略图
  • 只有域名如何做网站怎样做类似淘宝网的网站
  • 建站宝盒源码wordpress5.0中文编辑器
  • 视频网站开发公司推广策划案怎么写
  • 网站设计网站制作建站之星安装模板失败
  • 单页面网站现在共享网站的详细规划
  • 彭阳门户网站建设百度惠生活推广怎么收费
  • 北京建设网站网站安徽省建设工程招投标信息网
  • 公司开发个网站多少钱上海企乐网站制作公司
  • 网站用excel做数据库培训网站方案
  • 仿站参考网站wordpress获取页面图片
  • 网站怎么做站内美化php7 nginx wordpress
  • 济南中京网站建设公司天猫网站企业网站专业性诊断分析
  • 简述新建站点的步骤网站建设与网站优化
  • 北京网站建设知名公司排名wordpress重置主题
  • 信阳公司网站建设php网站建设视频教程
  • 青岛做网站青岛做网站河北省建设网站的网站首页
  • 体育网站建设视频网店代运营哪里好
  • 做网站公司300元钱ppt制作模板免费下载
  • 网站开发经验与教训范文深圳罗湖建网站
  • 企业网站建设的开放方式一般有wordpress空间推荐
  • 泸州北京网站建设厦门跨境建站平台
  • 做网站的联系方式清理wordpress数据表
  • 网站域名及空间购买凡科建站小程序
  • 如果将域名指向网站湖南哪里有做网站的
  • 郑州 网站 公司360网站怎么做链接
  • 重庆网站建设开发公司网站建设优化服务价位
  • 网站系统繁忙是什么原因不属于网络营销的推广手段是什么
  • 加强学科网站建设高端网站建设教程
  • win本地网站建设承德网络推广