当前位置: 首页 > news >正文 西安企业模板建站找网站开发公司 news 2025/10/31 4:16:45 西安企业模板建站,找网站开发公司,做网站需要公司么,wordpress 换中文字体一个包#xff08;package#xff09;可以拥有多个二进制单元包及一个可选的库单元包。随着包内代码规模的增长#xff0c;你还可以将代码拆分到独立的单元包#xff08;crate#xff09;中#xff0c;并将它作为外部依赖进行引用。 RUST提供了一系列的功能来帮助我们管…一个包package可以拥有多个二进制单元包及一个可选的库单元包。随着包内代码规模的增长你还可以将代码拆分到独立的单元包crate中并将它作为外部依赖进行引用。 RUST提供了一系列的功能来帮助我们管理代码包括决定哪些细节是暴露的、哪些细节是私有的以及不同的作用域的命名管理。这些功能有时被统称为模块系统module system它们包括 包package一个用于构建、测试并分享单元包的Cargo功能单元包crate一个用于生成库或可执行文件的树形模块结构模块module及use关键字它们被用于控制文件结构、作用域及路径的私有性路径path一种用于命名条目的方法这些条目包括结构体、函数和模块等 有几条规则决定了包可以包含哪些东西首先一个包中最多只能拥有一个库单元包。其次包可以拥有多个二进制单元包。最后包内必须存在至少一个单元包库单元包或二进制单元包。 cargo new my-project当我们执行这条命令时Cargo会生成一个包并创建相应的Cargo.toml文件。Cargo会默认将src/main.rs视作一个二进制单元包的根节点这个二进制单元包与包拥有相同的名字。同样地假设包的目录中包含文件src/lib.rsCargo也会自动将其视作与包同名的库单元包的根节点。 最初生产的包只包含源文件src/main.rs这也意味着只包含一个名为my-project的二进制单元包。而假设包中同时存在src/main.rs及src/lib.rs那么其中就会分别存在一个二进制单元包和一个库单元包它们用于与包相同的名字。我们可以在路径src/bin下添加源文件来创建出更多的二进制单元包这个路径下的每个源文件都会被视作单独的二进制单元包。 我们依赖的外部包比如提供生成随机数功能的rand包就属于单元包。将单元包的功能保留在它们自己的作用域中有助于指明某个特定功能来源于哪个单元包并避免可能得命名冲突。 定义模块来控制作用域及私有性 通过下面的方式创建一个库单元包RUST也默认生成了单元测试的代码 cargo new --lib restaurant// src/lib.rs mod front_of_house {mod host {fn add_to_waitlist() {}fn seat_at_table() {}}mod serving {fn take_order() {}fn serve_order() {}fn take_payment() {}} }通过mod关键字开头来定义一个模块接着指明这个模块的名称并在其后使用一对花括号来包裹模块体。模块内可以定义其他模块同样也可以包含其它条目的定义比如结构体、枚举、常量等。 我们前面提到过src/main.rs与src/lib.rs被称为单元包的根节点因为这两个文件的内容各自组成了一个名为crate的模块并位于单元包模块结构的根部。这个模块结构也被称为模块树module tree整个模块树都被放置在一个名为crate的隐式根模块下 crate└── front_of_house ├── hosting │ ├── add_to_waitlist │ └── seat_at_table └── serving ├── take_order ├── serve_order └── take_payment为了在RUST模块树中找到某个条目我们需要指定条目的路径有两种形式 使用单元包或字面量crate从根节点开始的绝对路径使用slef、super或内部标识符从当前模块开始的相对路径 绝对路径与相对路径都至少由一个标识符组成标识符之间使用双冒号::分隔。 // src/lib.rs pub fn eat_at_restaurant() {// 绝对路径crate::front_of_house::host::add_to_waitlist();// 相对路径front_of_house::host::add_to_waitlist(); }我们使用绝对路径和相对路径来调用add_to_waitlist函数大部分开发者更倾向使用绝对路径因为我们往往会彼此独立地移动代码的定义与代码调用。 这段代码编译器报错因为模块host是私有的。模块不仅仅被用于组织代码同时还定义了RUST的私有边界privacy boundary外部代码无法访问那些由私有边界封装的细节。 RUST中的所有条目函数、方法、结构体、枚举、模块及常量默认都是私有的。处于父模块中的条目无法使用子模块中的私有条目但子模块中的条目可以使用祖先模块中的条目。虽然子模块包装并隐藏了自身的实现细节但它却依然能够感知当前定义环境的上下文。 我们需要给hosting模块添加pub关键字之后我们便拥有了访问hosting子模块的权利。然后我们再给add_to_waitlist添加pub关键字私有性问题就解决了。整个过程中编译正常通过而front_of_house模块并没有声明为pub是因为front_of_house和eat_at_restaurant被定义在相同的模块下。 fn server_oreder() {}mod back_of_house {fn fix_incorrent_order() {cook_order();super::server_oreder();}fn cook_order() {} }代码从父模块开始构建相对路径这一方式需要在路径起始处使用super关键字。这有些类似于在文件系统中使用..语法开始一段路径。例子中我们通过super关键字来跳转至back_of_house的父模块也就是根模块。 结构体及枚举声明为公开 当我们在结构体定义前使用pub时结构体本身就成为了公共结构体但它的字段依旧保持了私有状态。我们可以逐一决定是否将某个字段公开。 枚举与结构体不同由于枚举只有在所有变体都公开时才能实现最大的功效而为所有枚举变体添加pub则显得繁琐因此所有的枚举变体默认都是公开的。但前提是我们将枚举声明为公开。 用use将路径导入作用域 基于路径调用函数的写法使用起来有些重复和冗长我们可以借助use关键字将路径引入作用域并像使用本地条目一样来调用路径中的条目。 mod front_of_house {pub mod host {pub fn add_to_waitlist() {}} }use crate::front_of_house::host;pub fn eat_at_restaurant() {host::add_to_waitlist(); }通过在单元包的根节点下添加use crate::front_of_house::hosthost成为该作用域下的一个有效名字就如同host模块被定义在根节点下一样。当然使用use将路径引入作用域时也需要遵守私有性规则。 实例中使用了绝对路径使用相对路径也是可以的use front_of_house::host。 使用as提供新的名称 使用use将同名类型引入作用域时可以在路径后使用as关键字为类型指定一个新的本地名字也就是别名。 use std::fmt::Result; use std::io::Result as IoResult;使用嵌套的路径来清理众多use语句 use std::io; use std::io::Write;这两条拥有共同的前缀std::io该前缀还是第一条路径本身。可以在嵌套路径中使用self将两条路径合并至一行use语句中。 use std::io::{self, Write}; 文章转载自: http://www.morning.jntdf.cn.gov.cn.jntdf.cn http://www.morning.lfdmf.cn.gov.cn.lfdmf.cn http://www.morning.nccyc.cn.gov.cn.nccyc.cn http://www.morning.qnrpj.cn.gov.cn.qnrpj.cn http://www.morning.rjyd.cn.gov.cn.rjyd.cn http://www.morning.ccyjt.cn.gov.cn.ccyjt.cn http://www.morning.ljxps.cn.gov.cn.ljxps.cn http://www.morning.dwwlg.cn.gov.cn.dwwlg.cn http://www.morning.hbqhz.cn.gov.cn.hbqhz.cn http://www.morning.wlgpz.cn.gov.cn.wlgpz.cn http://www.morning.hwprz.cn.gov.cn.hwprz.cn http://www.morning.mgmyt.cn.gov.cn.mgmyt.cn http://www.morning.qyfrd.cn.gov.cn.qyfrd.cn http://www.morning.nxwk.cn.gov.cn.nxwk.cn http://www.morning.jkwwm.cn.gov.cn.jkwwm.cn http://www.morning.alive-8.com.gov.cn.alive-8.com http://www.morning.cmzcp.cn.gov.cn.cmzcp.cn http://www.morning.kgphd.cn.gov.cn.kgphd.cn http://www.morning.wnmdt.cn.gov.cn.wnmdt.cn http://www.morning.tbnn.cn.gov.cn.tbnn.cn http://www.morning.cwrnr.cn.gov.cn.cwrnr.cn http://www.morning.rgpsq.cn.gov.cn.rgpsq.cn http://www.morning.lynkz.cn.gov.cn.lynkz.cn http://www.morning.ksqyj.cn.gov.cn.ksqyj.cn http://www.morning.qwbtr.cn.gov.cn.qwbtr.cn http://www.morning.rcklc.cn.gov.cn.rcklc.cn http://www.morning.qshxh.cn.gov.cn.qshxh.cn http://www.morning.rzdpd.cn.gov.cn.rzdpd.cn http://www.morning.pqktp.cn.gov.cn.pqktp.cn http://www.morning.qjlkp.cn.gov.cn.qjlkp.cn http://www.morning.xwnnp.cn.gov.cn.xwnnp.cn http://www.morning.qflwp.cn.gov.cn.qflwp.cn http://www.morning.pcgmw.cn.gov.cn.pcgmw.cn http://www.morning.sskhm.cn.gov.cn.sskhm.cn http://www.morning.jzkqg.cn.gov.cn.jzkqg.cn http://www.morning.qsyyp.cn.gov.cn.qsyyp.cn http://www.morning.zrmxp.cn.gov.cn.zrmxp.cn http://www.morning.lthpr.cn.gov.cn.lthpr.cn http://www.morning.tjpmf.cn.gov.cn.tjpmf.cn http://www.morning.xiaobaixinyong.cn.gov.cn.xiaobaixinyong.cn http://www.morning.rgxn.cn.gov.cn.rgxn.cn http://www.morning.yfmlj.cn.gov.cn.yfmlj.cn http://www.morning.srgwr.cn.gov.cn.srgwr.cn http://www.morning.kyzja.com.gov.cn.kyzja.com http://www.morning.gnjkn.cn.gov.cn.gnjkn.cn http://www.morning.pmdzd.cn.gov.cn.pmdzd.cn http://www.morning.jqcrf.cn.gov.cn.jqcrf.cn http://www.morning.qqnjr.cn.gov.cn.qqnjr.cn http://www.morning.dywgl.cn.gov.cn.dywgl.cn http://www.morning.cfccp.cn.gov.cn.cfccp.cn http://www.morning.xkjqg.cn.gov.cn.xkjqg.cn http://www.morning.lbxhy.cn.gov.cn.lbxhy.cn http://www.morning.gyrdn.cn.gov.cn.gyrdn.cn http://www.morning.drgmr.cn.gov.cn.drgmr.cn http://www.morning.mglqf.cn.gov.cn.mglqf.cn http://www.morning.cwqln.cn.gov.cn.cwqln.cn http://www.morning.jzbjx.cn.gov.cn.jzbjx.cn http://www.morning.qrpdk.cn.gov.cn.qrpdk.cn http://www.morning.zfcfk.cn.gov.cn.zfcfk.cn http://www.morning.nypsz.cn.gov.cn.nypsz.cn http://www.morning.mjctt.cn.gov.cn.mjctt.cn http://www.morning.fflnw.cn.gov.cn.fflnw.cn http://www.morning.pycpt.cn.gov.cn.pycpt.cn http://www.morning.lffbz.cn.gov.cn.lffbz.cn http://www.morning.bqwrn.cn.gov.cn.bqwrn.cn http://www.morning.qyrnp.cn.gov.cn.qyrnp.cn http://www.morning.lfgql.cn.gov.cn.lfgql.cn http://www.morning.rwlsr.cn.gov.cn.rwlsr.cn http://www.morning.reababy.com.gov.cn.reababy.com http://www.morning.nrchx.cn.gov.cn.nrchx.cn http://www.morning.ggnkt.cn.gov.cn.ggnkt.cn http://www.morning.zmlbq.cn.gov.cn.zmlbq.cn http://www.morning.piekr.com.gov.cn.piekr.com http://www.morning.slmbg.cn.gov.cn.slmbg.cn http://www.morning.tngdn.cn.gov.cn.tngdn.cn http://www.morning.zlrsy.cn.gov.cn.zlrsy.cn http://www.morning.wqrdx.cn.gov.cn.wqrdx.cn http://www.morning.rqqkc.cn.gov.cn.rqqkc.cn http://www.morning.qnsmk.cn.gov.cn.qnsmk.cn http://www.morning.jwbfj.cn.gov.cn.jwbfj.cn 查看全文 http://www.tj-hxxt.cn/news/264203.html 相关文章: 网站竞价难做优化广州广告公司有哪些 南京网站制作链接网站策划师 开奖视频网站开发小米路由器mini做网站 网站建设的总结私人做网站 青岛做网站的公司哪家好个人网页设计模板网站 网站推广注册扬州招标工程建设信息网 建设一个网站需要学习什么辽宁省建设科学研究院网站 怎么选择郑州网站建设android应用开发期末考试题 张家港设计网站网站及推广 宁波网站建设-中国互联网络舆情监测工作方案 php怎么做网站教程广东佛山网络有限公司 如何建设一个社交网站企业网站建设的三种方式并举例 做类似简书的网站哔哩哔哩网站分析 网站建设公司地址建一个网上商城需要多少钱 网站结构是什么深圳工装公司 有没有99块钱做网站网站的优化是什么意思 电商网站有哪些类型如何开发游戏辅助软件 专业足球网站建设厦门网站建设服务公司 咸阳 网站建设莱芜雪野湖天气预报 上海专业网站建站wordpress国内优化 信息网站建设长沙房产网签查询系统 滨州网站建设 中企动力做自媒体发视频用哪些网站 盐田网站设计域名及网站建设实验报告 做外贸需要浏览外国网站怎么做小程序 哪家公司搭建网站html5 单页网站 预售网站开发中文个人网站欣赏 网站交互设计产品图册设计公司 seo网站自动发布外链工具品牌全案策划案例 wordpress 小说站主题微信 怎么上传 wordpress 如何用电脑主机做网站公司网站建设30元