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

怎么制作h5页面推荐一个seo优化软件

怎么制作h5页面,推荐一个seo优化软件,合肥建站费用,企业手机网站建设精英研读Rust圣经解析——Rust learn-8(match,if-let简洁控制流,包管理) matchother和占位符_区别 easy matchenum matchno valuematch inner Option matchmore better way if-let整洁控制包管理模块(mod)拆分声明modpub公开use展开引用拆解模块结…

研读Rust圣经解析——Rust learn-8(match,if-let简洁控制流,包管理)

  • match
    • other和占位符`_`
      • 区别
    • easy match
    • enum match
      • no value
      • match inner
    • Option match
      • more better way
  • if-let整洁控制
  • 包管理
    • 模块(mod)拆分
      • 声明mod
      • pub公开
      • use展开引用
      • 拆解模块
        • 结构
        • main.rs
        • lib.rs
        • lib/service.rs
        • lib/controller.rs

match

match用于对条件进行匹配以控制程序处理,对于enum十分有效或者是去用于Option

other和占位符_

在开始前,我们先来说以下other和占位符_,这常常在match的其余匹配中使用
比如:当周一的时候我要上课,周三的时候我要去钓鱼,而其他时间都得要上班,这时候使用other和占位符就很好,我只要处理周一和周三即可,其他都是相同的操作

区别

当我们不想使用通配模式获取的值时,请使用_,这是一个特殊的模式,可以匹配任意值而不绑定到该值

easy match

fn main() {let number = 46;match number {23=>println!("single"),46=>println!("double"),_=>()};}

另一种

fn main() {let number = 45;match number {23=>println!("single"),46=>println!("double"),other=>()};}

enum match

no value

没有任何值的时候我们可以直接去匹配enum的类型进行判断处理

enum Job {teacher,student,manager,
}fn main() {let job = Job::teacher;match job {Job::teacher => println!("teach student"),Job::student => println!("listen class"),Job::manager => println!("drink coffee"),}
}

match inner

但是如果我们的enum中嵌套结构体或者元组,我们可以使用{}|()匹配取出名称进行处理

enum Job {teacher,student,manager {name: Option<String>},
}fn main() {let job = Job::manager {name: Some("wangwu".to_string())};match job {Job::teacher => println!("teach student"),Job::student => println!("listen class"),Job::manager { name } => {println!("{}", name.unwrap());}}
}

Option match

我们可以对一个值是否为空进行匹配以进行处理

fn main() {let a = Some(5);let b = match a {Some(inner) => inner + 5,None => 10086};println!("{}", b);
}

more better way

更好的方式是:

fn main() {let a = Some(5);let b = match a {Some(inner) =>Ok( inner + 5),None =>Err("this is none")};println!("{}", b.unwrap());
}

这样把Option转为了Result进行处理

if-let整洁控制

实际上if-let就是if+let的结合模式,来处理只匹配一个模式的值而忽略其他模式的情况,若你只想处理一种情况,这比使用match更加好

fn main() {let a: Option<i32> = Some(100);if let Some(inner) = a {println!("{}", inner)}
}

包管理

以下是层级结构,我们需要记住

  1. 包(Packages):Cargo 的一个功能,它允许你构建、测试和分享 crate。
  2. Crates :一个模块的树形结构,它形成了库或二进制项目。
  3. 模块(Modules)和 use:允许你控制作用域和路径的私有性。
  4. 路径(path):一个命名例如结构体、函数或模块等项的方式

Rust不止能在一个main.rs中编写代码当然也支持import|export模式,而且也支持模块模式(想象成SpringCloud类的项目)

虽然圣经上描述的很具体,但是我认为我们只需要快速了解并学会使用即可

模块(mod)拆分

Rust把文件名直接名为一个模块名,引入文件=引入想应模块
接下来我们快速看一下mod说明

声明mod

这里我们声明了lib的mod,里面包含controller mod和service mod

mod lib{fn run_lib(){println!("lib")}mod controller{fn run_controller(){println!("controller")}}mod service{fn run_service(){println!("service")}}
}

但是实际上,外部无法调用这些内部模块和方法

pub公开

通过使用pub关键字,我们可以对方法、常量、结构体、枚举、模块等进行公开

pub mod lib{pub fn run_lib(){println!("lib")}pub mod controller{fn run_controller(){println!("controller")}}pub mod service{fn run_service(){println!("service")}}
}fn main() {lib::run_lib();
}

这样我们就能够访问到里面的模块和方法,但是依然无法访问到controller内部的和service内部的方法,因为没有被公开

use展开引用

通过使用use关键字,我们可以对内部可公开的引用直接使用,无需通过模块名称进行指定,这对于一些深模块是非常有用的

pub mod lib{pub fn run_lib(){println!("lib")}pub mod controller{pub fn run_controller(){println!("controller")}}pub mod service{pub fn run_service(){println!("service")}}
}use lib::controller::run_controller;fn main() {run_controller()
}

拆解模块

这里要说的真正的是拆解模块

pub mod lib{pub fn run_lib(){println!("lib")}pub mod controller{pub fn run_controller(){println!("controller")}}pub mod service{pub fn run_service(){println!("service")}}
}

现在我们有一个大模块,两个内部小模块
我们就应该在main.rs中创建一个lib.rs的文件存储lib模块中的内容
我们直接看结果或许会快很多

结构

在这里插入图片描述

main.rs

use ru2::lib::controller::run_controller;fn main() {run_controller();
}

lib.rs

pub mod lib{pub mod controller;pub mod service;
}
pub fn run_lib(){println!("lib")
}

lib/service.rs

pub fn run_service(){println!("service")
}

lib/controller.rs

pub fn run_controller(){println!("controller")
}
http://www.hkea.cn/news/482583/

相关文章:

  • 网站版面结构chatgpt 网站
  • 网站后期推广是谁来做广州百度推广开户
  • 不上此网站枉做男人免费制作网站平台
  • 防红短链接生成佛山抖音seo
  • 网站建设php带数据库模板站长工具四叶草
  • 做网站客户拖着不验收店铺推广渠道有哪些方式
  • 站群系统哪个好用怎样进行seo推广
  • 淄博网站建设方案网络推广是做什么的
  • 网站建设销售工作职责seo平台怎么样
  • 免费的网站给一个百度seo优化服务项目
  • 现代广告创意设计郑州百度网站优化排名
  • 兰州网站建设哪家专业谷歌seo网站推广
  • 崇信门户网站留言回复上优化seo
  • 网站建设费用有哪些站长工具搜索
  • 云主机能干什么独立站seo怎么做
  • 苏州专业网站建设设计公司免费发布推广信息的b2b
  • 空间 两个网站网络推广培训班
  • 零基础学做网站推广公司简介
  • 公司做网站最好引擎搜索器
  • 济南手工网站建设北京百度seo服务
  • 网站建设原创百度seo官网
  • 徐州企业网站建设衡阳seo服务
  • 网站自然排名优化seo专员是什么职业
  • 视频网站制作广告代理公司
  • wordpress主题域名授权密钥生成镇海seo关键词优化费用
  • 北京东直门+网站建设汕头seo外包平台
  • 长沙 做网站企业网络组网设计
  • 北京哪家做网站优化产品seo基础优化
  • 招商加盟网站建设百度网址安全检测
  • 知名做网站费用2024年将爆发新瘟疫