《挡不住的风情》武侠片-全集在线观看地址-开宇影视
Rust 编程视频教程对应讲解内容-包、crate、模块2020-01-06 21:03·程序员令狐一冲视频地址头条地址:https://www.ixigua.com/i6765442674582356483B站地址:https://www.bilibili.com/video/av78062009?p=1网易云课堂地址:https://study.163.com/course/introduction.htm?courseId=1209596906#/courseDetail?tab=1讲解内容1、定义(1)包:Cargo的一个功能,允许构建、测试和分享crate。(2)Crate:一个模块的树形结构,形成库或二进制项目。(3)模块:通过use来使用,用来控制作用域和路径的私有性。(4)路径:一个命名例如结构体、函数或模块等项的方式。2、包和Crate(1)crate root 是一个源文件,Rust 编译器以它为起始点,并构成你的 crate 的根模块。(2)包提供一系列功能的一个或多个Crate。(3)Crate root是src/main.rs或者是src/lib.rs。 说明:如果只有main.rs则说明这个包只有一个crate(main),如果同时拥有main.rs和其它的lib.rs(不一定是这个名字)则说明拥有多个crate。(4)crate会将一个作用域的相关功能分组到一起,使得该功能可以很方便的在多个项目之间共享。3、使用模块控制作用域和私有性(1)创建一个lib可以通过命令cargo new --lib libname来进行创建。(2)中默认所有项(函数、方法、结构体、枚举、模块和常量)都是私有的,需要使用pub才能暴露给外部。(3)创建模块,例如://factory.rsmod refrigerator { //冰箱//需要使用 pub,否则别人无法使用fn refrigeration() {//需要使用 pub,否则别人无法使用}}mod washing_machine { //需要使用 pub,否则别人无法使用fn wash() {//需要使用 pub,否则别人无法使用}}//lib.rspub mod factory;//main.rsuse mylib::factory;fn main() {factory::refrigerator::refrigeration();println!("Hello, world!");}知识点:需要使用pub,否则无法使用。4、使用绝对路径和使用相对路径例子:mod A {pub mod B {pub fn prin() {println!("++++++");super::ppp();//使用父路径}}pub fn ppp() {println!("++++++ ppp");}}fn main() {use A::B::prin; //相对路径prin();A::B::prin();//绝对路径println!("Hello, world!");}5、对结构体的使用mod modA {#[derive(Debug)]pub struct A {pub number: i32,name: String,}impl A {pub fn new_a() -> A {A {number: 20,name: String::from("A"),}}pub fn print_a(&self) {println!("number = {}, name = {}", self.number, self.name);}}}fn main() {let a = modA::A::new_a();a.print_a();let n = a.name;//error,因为name是私有的println!("Hello, world!");}6、使用use和as,使用*引进所有//使用useuse modA::A;let a = A::new_a();//使用asuse modA::A as myA;let a = myA::new_a();//使用*use modA::*;let a = myA::new_a();7、使用pub use重导出8、外部包在Cargo.toml下的dependencies下(1)路径[dependencies]mylib = {path = "./mylib"}(2)github上的版本[dependencies]rust-crypto = "0.2"serde = "1.0.63"bincode = "1.2.0"serde_derive = "1.0.27"例子://! SHA3-256 示例extern crate crypto;//extern crate rustc_hex;use self::crypto::digest::Digest;use self::crypto::sha3::Sha3;//use rustc_hex::{ToHex,FromHex};fn main() {// create a SHA3-256 objectlet mut hasher = Sha3::sha3_256();// write input messagehasher.input_str("hello world");//read hash digestlet hex = hasher.result_str();}了解更多
2024年12月18日,小李一听1500元,心想:
《挡不住的风情》武侠片-全集在线观看地址-开宇影视
婚礼上我穿着洁白的婚纱手捧着鲜花走向陈宇
锌刻度从淘宝看到,“淄博烧烤小饼”以681.5万的热度占据淘宝热搜第一的宝座,“淄博烧烤”的热度也在一周时间里上升了14%。安德里茨(佛山)智能制造有限公司是安德里茨2021年在中国最新投资的工厂。该工厂总占地面积约4万平方米,项目总投资超过3.16亿元人民币。如今,这一集绿色环保、数字化于一体的生产车间已经投入生产,生产线工艺全面升级,效率和质量均有质的提升。