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

网站风格包括什么网站建设市场推广招聘

网站风格包括什么,网站建设市场推广招聘,网页设计培训南京,域名格式rust 最近开始学习rust语言。感觉这门语言相对java确实是难上很多。开几个文章把遇到的问题记录一下 rust关于包,Crate 关于包,Crate这块先看看官方书籍怎么说的 crate 是 Rust 在编译时最小的代码单位。如果你用 rustc 而不是 cargo 来编译一个文件…

rust

最近开始学习rust语言。感觉这门语言相对java确实是难上很多。开几个文章把遇到的问题记录一下

rust关于包,Crate

关于包,Crate这块先看看官方书籍怎么说的

crate 是 Rust 在编译时最小的代码单位。如果你用 rustc 而不是 cargo 来编译一个文件(第一章我们这么做过),编译器还是会将那个文件认作一个 crate。crate 可以包含模块,模块可以定义在其他文件,然后和 crate 一起编译,我们会在接下来的章节中遇到。

crate 有两种形式:二进制项和库。二进制项 可以被编译为可执行程序,比如一个命令行程序或者一个服务器。它们必须有一个 main 函数来定义当程序被执行的时候所需要做的事情。目前我们所创建的 crate 都是二进制项。

库 并没有 main 函数,它们也不会编译为可执行程序,它们提供一些诸如函数之类的东西,使其他项目也能使用这些东西。比如 第二章 的 rand crate 就提供了生成随机数的东西。大多数时间 Rustaceans 说的 crate 指的都是库,这与其他编程语言中 library 概念一致。

crate root 是一个源文件,Rust 编译器以它为起始点,并构成你的 crate 的根模块(我们将在 “定义模块来控制作用域与私有性” 一节深入解读)。

包(package)是提供一系列功能的一个或者多个 crate。一个包会包含一个 Cargo.toml 文件,阐述如何去构建这些 crate。Cargo 就是一个包含构建你代码的二进制项的包。Cargo 也包含这些二进制项所依赖的库。其他项目也能用 Cargo 库来实现与 Cargo 命令行程序一样的逻辑。包中可以包含至多一个库 crate(library crate)。包中可以包含任意多个二进制 crate(binary crate),但是必须至少包含一个 crate(无论是库的还是二进制的)

这里我个人理解包类似于java当中maven当中的模块,crate root 是一个源文件,Rust 编译器以它为起始点,并构成你的 crate 的根模块。就是说各个mod串联的起点,比如main.rs当中定义。或者lib.rs库create

mod

先看看官方教程

这里我们提供一个简单的参考,用来解释模块、路径、use关键词和pub关键词如何在编译器中工作,以及大部分开发者如何组织他们的代码。我们将在本章节中举例说明每条规则,不过这是一个解释模块工作方式的良好参考。

从 crate 根节点开始: 当编译一个 crate, 编译器首先在 crate 根文件(通常,对于一个库 crate 而言是src/lib.rs,对于一个二进制 crate 而言是src/main.rs)中寻找需要被编译的代码。

声明模块: 在 crate 根文件中,你可以声明一个新模块;比如,你用mod garden声明了一个叫做garden的模块。编译器会在下列路径中寻找模块代码:

内联,在大括号中,当mod garden后方不是一个分号而是一个大括号 ,在文件 src/garden.rs,在文件 src/garden/mod.rs

声明子模块: 在除了 crate 根节点以外的其他文件中,你可以定义子模块。比如,你可能在src/garden.rs中定义了mod vegetables;。编译器会在以父模块命名的目录中寻找子模块代码:内联,在大括号中,当mod vegetables后方不是一个分号而是一个大括号

在文件 src/garden/vegetables.rs

在文件 src/garden/vegetables/mod.rs

模块中的代码路径: 一旦一个模块是你 crate 的一部分,你可以在隐私规则允许的前提下,从同一个 crate 内的任意地方,通过代码路径引用该模块的代码。举例而言,一个 garden vegetables 模块下的Asparagus类型可以在crate::garden::vegetables::Asparagus被找到。

私有 vs 公用: 一个模块里的代码默认对其父模块私有。为了使一个模块公用,应当在声明时使用pub mod替代mod。为了使一个公用模块内部的成员公用,应当在声明前使用pub。

use 关键字: 在一个作用域内,use关键字创建了一个成员的快捷方式,用来减少长路径的重复。在任何可以引用crate::garden::vegetables::Asparagus的作用域,你可以通过 use crate::garden::vegetables::Asparagus;创建一个快捷方式,然后你就可以在作用域中只写Asparagus来使用该类型。

这里我个人理解就像是java当中的package,当然也有很大区别。通过这些能组织项目中的目录,各个package引用

举个例子,用mvc层架构controller包举例

想创建controller目录,首先再main.rs或者lib.rs当中声明mod,这里用main.rs举例

pub mod controller;fn main() {println!("hello world!");
}

然后就可以创建controller目录了,并创建对应的mod.js
在这里插入图片描述
下面再controller目录下创建别的rs文件可以这么做,比如创建user模块的。
在controller/mod.rs当中声明user mod

pub mod user;

然后就可以在controller目录下创建user.rs mod了
最终下来简单结构如图
在这里插入图片描述
后续可以按照此方法创建单package下的代码结构了。
文章算是记录遇到的问题。如有不对的地方欢迎指正

http://www.yayakq.cn/news/854767/

相关文章:

  • 东莞网站建设+旅游大美互助app
  • 谁有做开档棉裤的网站啊设计制作长方体形状的包装纸盒视频
  • 网站设计项目策划ppt域名备案代理
  • 一流的上海网站建设公司wordpress免费企业网站
  • 有哪些官方网站做的比较好河南建设168工程网官方网站
  • 仿土豆网站源码建网站模板
  • 匿名聊天网站开发凡科外贸网站建设
  • 网站建设与维护怎么学建筑网站的功能模块
  • 深圳做公司英文网站多少钱广西壮族自治区住房和城乡建设厅
  • 南部建设局网站google chrome 网络浏览器
  • 网站开发最佳组合温州网站制作案例
  • 长沙公司做网站找哪个公司好字节跳动员工人数2019
  • 关于申请建设网站申请报告广东东远建设工程管理有限公司网站
  • 浦口国家建设部网站重庆市工程建设招投标交易中心网站
  • 明星网页设计模板图片南京怎样优化关键词排名
  • 六安哪家做网站不错推广网络网站
  • 推广网站优化怎么做泰安城建吧
  • 做任务有奖励的网站廊坊网站建设精灵
  • 明企科技网站建设系统wordpress 抓取
  • 有哪些做文创产品的网站关闭wordpress评论
  • 公司旅游视频网站模板免费下载西海岸新区城市建设局网站
  • 长沙武广新城建设网站敬请期待英语
  • 建企业网站程序系统wordpress5本地访问速度慢
  • 检察院加强网站建设国家企业信用信息公示系统辽宁
  • 国内网站备案流程微信营销的方式有哪些
  • 如何给局域网 做网站制作网页用什么软件
  • 毕业设计做啥网站好68Design一样设计网站
  • 网页制作与网站建设思维导图施工企业资质分为哪些
  • 景德镇网站制作韩国的汽车设计网站
  • 惠州附近做商城网站建设哪家好商业网站排名