zoukankan      html  css  js  c++  java
  • rust mod

    [root@bogon app1]# cat Cargo.toml 
    [package]
    name = "app1"
    version = "0.1.0"
    authors = ["magnate <liangeaglejun@sina.com>"]
    edition = "2018"
    
    # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
    
    [dependencies]
    rand = "0.6.5"
    #[[bin]]
    #name = "hell"
    #path = "src/hell.rs"
    [root@bogon app1]# 

    [root@bogon app1]# ls src
    greetings.rs main.rs

    [root@bogon app1]# cat src/*
    pub fn hello() { println!("Hello, world!"); }
    extern crate rand; mod greetings; use rand::random; fn main() { let correct:u8 = random(); println!("correct value is {}",correct); greetings::hello(); } [root@bogon app1]#
    [root@bogon app1]# cargo build 
        Finished dev [unoptimized + debuginfo] target(s) in 0.02s
    [root@bogon app1]# cargo run
        Finished dev [unoptimized + debuginfo] target(s) in 0.02s
         Running `target/debug/app1`
    correct value is 59
    Hello, world!
    [root@bogon app1]# 
    将mod分散到同一个路径下的不同文件中
    //  main.rs
    mod greetings; // import greetings module
    fn main() {
      greetings::hello();
    }
    // greetings.rs
    // 不需要显示声明mod,默认即是文件名作为mod名
    pub fn hello() { 
      println!("Hello, world!");
    }
    如果mod文件中使用mod关键字包装:
    
    // ↳ main.rs
    mod phrases;
    fn main() {
      phrases::greetings::hello();
    }
    // ↳ phrases.rs
    pub mod greetings { 
      pub fn hello() {
        println!("Hello, world!");
      }
    }

    test2

    https://juejin.im/entry/6844903721676046344

    [root@bogon app1]# ls src/
    main.rs  phrases.rs
    [root@bogon app1]# 
    [root@bogon app1]# cat src/*
    extern crate rand;
    mod phrases;
    use rand::random;
    fn main() {
        let correct:u8 = random();
        println!("correct value is {}",correct);
            phrases::greetings::hello();
    }
    pub mod greetings {
    pub fn hello() { 
                      println!("Hello, world!");
    }
    }
    /data2/rust/app1
    [root@bogon app1]# cargo build 
       Compiling app1 v0.1.0 (/data2/rust/app1)
        Finished dev [unoptimized + debuginfo] target(s) in 0.53s
    
    [root@bogon app1]# cargo run
        Finished dev [unoptimized + debuginfo] target(s) in 0.02s
         Running `target/debug/app1`
    correct value is 177
    Hello, world!

    mod.rs文件

    mod.rs 是真个路径下的mod的入口文件,所有在同一路径下的文件都是它的子mod。

    [root@bogon app1]# tree  src/
    src/
    |-- lib1
    |   `-- mod.rs
    `-- main.rs
    
    1 directory, 2 files
    [root@bogon app1]#
    [root@bogon app1]# cat src/main.rs 
    extern crate rand;
    mod lib1;
    use rand::random;
    fn main() {
        let correct:u8 = random();
        println!("correct value is {}",correct);
            lib1::hello();
    }
    [root@bogon app1]# cat src/lib1/mod.rs 
    pub fn hello() { 
                      println!("Hello, world!");
    }
    [root@bogon app1]# 

    test3

    在mod.rs 使用pub mod xxx 声明需要到出的mod

    [root@bogon app1]# tree src
    src
    |-- lib1
    |   |-- greeting.rs
    |   `-- mod.rs
    `-- main.rs
    
    1 directory, 3 files
    [root@bogon app1]# cat src/lib1/greeting.rs 
    pub fn hello() { 
                      println!("Hello, world!");
    }
    [root@bogon app1]# cat src/lib1/mod.rs 
    pub mod greeting;
    [root@bogon app1]# cat src/main.rs 
    extern crate rand;
    mod lib1;
    use rand::random;
    fn main() {
        let correct:u8 = random();
        println!("correct value is {}",correct);
            lib1::greeting::hello();
    }
    [root@bogon app1]# 
    [root@bogon app1]# cargo build 
       Compiling app1 v0.1.0 (/data2/rust/app1)
        Finished dev [unoptimized + debuginfo] target(s) in 0.52s
    [root@bogon app1]# cargo run
        Finished dev [unoptimized + debuginfo] target(s) in 0.02s
         Running `target/debug/app1`
    correct value is 246
    Hello, world!
    [root@bogon app1]# 
  • 相关阅读:
    25、继续echarts实现中国地图
    24、echarts做报表
    23、css的定位问题
    22、继续javascript,左边选中的跳到右边
    21、在选择的时候跳到另一页面上,选择男女,然后提交表单内容
    20、formAdd,javascript实现动态添加
    19、javascript基础知识
    18、webservice使用
    17、javaWebService,的使用
    16、使用jQuery的html5player播放器,进行播放
  • 原文地址:https://www.cnblogs.com/dream397/p/13865166.html
Copyright © 2011-2022 走看看