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

徐州学习网站建设公司起名自动生成器

徐州学习网站建设,公司起名自动生成器,怎么免费制作网站,linode vps wordpress包#xff1a;一个用于构建、测试并分享单元包的Cargo功能#xff1b;单元包#xff1a;一个用于生成库或可执行文件的树形模块结构#xff1b;模块及use关键字#xff1a;被用于控制文件结构、作用域及路径的私有性#xff1b;路径#xff1a;一种用于命名条目的方法一个用于构建、测试并分享单元包的Cargo功能单元包一个用于生成库或可执行文件的树形模块结构模块及use关键字被用于控制文件结构、作用域及路径的私有性路径一种用于命名条目的方法这些条目包括结构体、函数和模块等。 1、包与单元包 单元包可以被用于生成二进制程序或库。将Rust编译时所使用的入口文件称作这个单元包的根节点它同时也是单元包的根模块。 包由一个或多个提供相关功能的单元包集合而成它所附带的配置文件Cargo.toml描述了如何构建这些单元包的信息。 包包含的规则 一个包中只能拥有最多一个库单元包包可以拥有任意多个二进制单元包包内必须存在至少一个单元包库单元包或二进制单元包。 Cargo会默认将src/main.rs视作一个二进制单元包的根节点而无需指定这个二进制单元包与包拥有相同的名称。当包中同时存在src/main.rs和src/lib.rs时就会分别存在一个二进制单元包与一个库单元包它们拥有与包相同的名称可以在路径src/bin下添加源文件来创建出更多的二进制单元包这个路径下的每个源文件都会被视作单独的二进制单元包。 单元包可以将相关的功能分组并放到同一作用域下这样便可以使这些功能轻松地在多个项目中共享。 将单元包的功能保留在它们自己的作用域中有助于指明某个特定功能来源于哪个单元包并避免可能的命名冲突。 2、通过定义模块来控制作用域及私有性 模块允许将单元包内的代码按照可读性与易用性来进行分组同时还允许控制条目的私有性。即模块决定了一个条目是否可以被外部代码使用公用或者仅仅只是一个内部的实现细节而不对外暴露私有。 模块内可以继续定义其他模块也同样可以包含其他条目的定义例如结构体、枚举、常量、trait等。 在Rust中src/main.rs和src/lib.rs被称为单元包的根节点这两个文件的内容各自组成了一个名为crate的模块并位于单元包模块结构的根部。这个模块结构也被称为模块树。 模块树的结构 当模块A被包含在模块B内时将模块A称为模块B的子节点模块B称为模块A的父节点。 3、用于在模块树中指明条目的路径 为了在Rust的模块树中找到某个条目同样需要使用路径。例如在调用某个函数的时候必须知道它的路径。 路径有两种形式 使用单元包名或字面量crate从根节点开始的绝对路径使用self、super或内部标识符从当前模块开始的相对路径。 绝对路径与相对路径都由至少一个标识符组成标识符之间使用双冒号::分隔。 Rust中的所有条目函数、方法、结构体、枚举、模块及常量默认都是私有的。处于父级模块中的条目无法使用子模块中的私有条目但子模块中的条目可以使用它所有祖先模块中的条目。虽然子模块包装并隐藏了自身的实现细节但它却依然能够感知当前定义环境中的上下文。 (1)、使用pub关键字来暴露路径 为了能够让父模块中可以正常访问子模块中的函数可以使用关键字pub来标记函数。示例 mod front_of_house{pub mod hosting{pub add_to_waitlist(){}} } pub fn eat_at_restaurant() {// 绝对路径crate::front_of_house::hosting::add_to_waitlist();// 相对路径front_of_house::hosting::add_to_waitlist(); }注意仅将父模块设为pub在访问时子模块仍是私有的对外不可见需要将要调用的最终模块也设置为pub。一个模块的同级节点之间的访问不需要使用关键字pub。 (2)、使用super关键字开始构造相对路径 可以从父模块开始构造相对路径这一方式需要在路径起始处使用super关键字。 示例 fn serve_order(){} mod back_of_house {fn fix_incorrect_order(){cook_order();super::serve_order();} }由于fix_incorrect_order函数处于back_of_house模块内所以可以使用super关键字来跳转至back_of_house的父模块也就是根模块处。从它开始可以成功地找到 serve_order。 (3)、将结构体或枚举声明为公共的 结构体和枚举都可以使用pub来声明为公共的但是二者存在一定的差异。当在结构体前面使用pub时结构体本身就成为了公共结构体但是它的字段依旧保持了私有状态。可以逐一决定是否将某个字段公开。 示例 mod back_of_house {pub struct Breakfast {pub toast: String,seasonal_fruit: String,}impl Breakfast {pub fn summer(toast: str) - Breakfast {Breakfast {toast: String::from(toast),seasonal_fruit: String::from(peaches),}}} }这里的toast是公共的所以可以在别的函数中使用点号读写但是seasonal_fruit字段是私有的不可以直接使用点号进行读写。因为back_of_house::Breakfast拥有了一个私有字段所以这个结构体需要提供一个公共的关联函数来构造Breakfast的实例也就是本例中的summer。如果缺少了这样的函数将无法在别的函数中中创建任何的Breakfast实例。 与结构体不同的是将一个枚举声明为公共的时它所有的变体都自动变为了公共的仅需要在enum关键字前放置pub。 示例 mod back_of_house{pub enum Appetizer{Soup,Salad,} }这里的Soup和Salad都具有公共属性。 4、用use关键字将路径导入作用域 借助关键字use可以将路径引入作用域并像使用本地条目一样来调用路径中的目录。 mod front_of_house {pub mod hosting {pub fn add_to_waitlist() {}} } use crate::front_of_house::hosting; pub fn eat_at_restaurant() {hosting::add_to_waitlist();hosting::add_to_waitlist();hosting::add_to_waitlist(); }使用use来指定相对路径稍有一些不同。必须在传递给use的路径的开始处使用关键字self而不是从当前作用域中可用的名称开始。 mod front_of_house {pub mod hosting {pub fn add_to_waitlist() {}} } use self::front_of_house::hosting; pub fn eat_at_restaurant() {hosting::add_to_waitlist();hosting::add_to_waitlist();hosting::add_to_waitlist(); }(1)、创建use路径时的惯用模式 在使用关键字use指定函数路径时只指定到函数的父模块这意味着在调用函数时必须指定这个父模块从而更清晰地表明当前函数有没有被定义在当前作用域同样也能避免重复路径。 (2)、使用as关键字来提供新的名称 使用use将同名类型引入作用域时所产生的问题还有另外一种解决办法可以在路径后使用as关键字为类型指定一个新的本地名称也就是别名。 示例 use std::fmt::Result; use std::io::Result as IoResult; fn function1() - Result {// --略 -- } fn function2() - IoResult() {// --略 -- }(3)、使用pub usb重导出名称 当我们使用use关键字将名称引入作用域时这个名称会以私有的方式在新的作用域中生效。为了让外部代码能够访问到这些名称可以通过组合使用pub与use实现。这项技术也被称作重导出。因为不仅将条目引入了作用域而且使该条目可以被外部代码从新的作用域引入自己的作用域。 mod front_of_house {pub mod hosting {pub fn add_to_waitlist() {}} } pub use crate::front_of_house::hosting; pub fn eat_at_restaurant() {hosting::add_to_waitlist();hosting::add_to_waitlist();hosting::add_to_waitlist(); }(4)、使用嵌套的路径来清理众多use语句 当想要使用同一个包或同一个模块内的多个条目时将它们逐行列出会占据较多的纵向空间。可以在同一行内使用嵌套路径来将上述条目引入作用域。这一方法需要首先指定路径的相同部分再在后面跟上两个冒号接着用一对花括号包裹路径差异部分的列表。 示例 use std::cmp::Ordering; use std::io; // ---略可以写成 use std::{cmp::Ordering, io}; // ---略同理 use std::io; use std::io::Write;可以写成 use std::io::{self, Write};(5)、通配符 假如想要将所有定义在某个路径中的公共条目都导入作用域那么可以在指定路径时在后面使用*通配符。 示例 use std::collections::*;上面这行use语句会将定义在std::collections内的所有公共条目都导入当前作用域。
http://www.dnsts.com.cn/news/148048.html

相关文章:

  • wordpress 大型网站吗有没有专门做纸箱的网站
  • 建筑行业一般在哪个网站招聘易橙云做的网站怎么样
  • 手机上做整蛊网站湛江建站服务
  • 网站模板修改教程惠州行业网站设计方案
  • 猫扑网站开发的网游wordpress 获取微博
  • 做网站服务器需要自己提供吗石家庄网络建设
  • 做网站需要什么知识哪个网站可以做曝光台
  • 自己做qq头像静态的网站wordpress目录导航主题
  • 建湖网站建设芜湖百度seo
  • 漫画做视频在线观看网站重庆做营销网站
  • 开发网站用什么语言最好吗怎样做市场营销策划
  • 专业模板建站公司全网网络营销推广
  • 开发网站的硬件成本wordpress自动封面
  • 网站建设用户需求wordpress aplayer
  • 公司网站后台网站实名认证中心
  • 高校网站建设的重要性建设网站哪个便宜
  • 音乐网站建设论文自适应网站建设
  • 动态发布网站和静态发布网站西安景点网页设计
  • html设计网站著名建站公司
  • wordpress网站用户注册芜湖做网站建设公司
  • 如何制作一般企业网站东莞微信公众号小程序
  • 淘宝京东网站建设目的美图在线图片编辑器
  • 网站雪花飘落代码模板式网站价格
  • 淘宝客网站模板title (网站建设)
  • 商务网站建设实训报告1500字备案期间网站怎么关闭
  • 滴滴网站建设流程wap版
  • 飓风算法恢复的网站wordpress nofollow标签
  • wordpress 站内链接盐城亭湖区建设局网站
  • 请别人做网站注意事项手机网站开发项目
  • 专业网站建设比较好厦门微网站建设公司