meaning - what is rusting




एक ही प्रोजेक्ट से दूसरी फ़ाइल से मॉड्यूल कैसे शामिल करें? (2)

आपको अपनी hello.rs फ़ाइल पर mod hello आवश्यकता नहीं है। किसी भी फाइल पर कोड लेकिन टोकरे की जड़ ( main.rs लिए lib.rs पुस्तकालय के लिए lib.rs ) स्वचालित रूप से एक मॉड्यूल पर नाम दिया गया है।

अपने main.rs पर hello.rs से कोड शामिल करने के लिए, mod hello; उपयोग करें mod hello; । यह उस कोड के लिए विस्तारित हो जाता है जो hello.rs पर है (ठीक उसी तरह जैसे आप पहले थे)। आपकी फ़ाइल संरचना समान है, और आपके कोड को थोड़ा बदलना होगा:

main.rs:

mod hello;

fn main() {
    hello::print_hello();
}

hello.rs:

pub fn print_hello() {
    println!("Hello, world!");
}

इस गाइड का पालन ​​करके मैंने एक कार्गो प्रोजेक्ट बनाया

src / main.rs

fn main() {
    hello::print_hello();
}

mod hello {
    pub fn print_hello() {
        println!("Hello, world!");
    }
}

जो मैं उपयोग करके चलाता हूं

cargo build && cargo run

और यह त्रुटियों के बिना संकलित है। अब मैं मुख्य मॉड्यूल को दो में विभाजित करने की कोशिश कर रहा हूं, लेकिन यह पता नहीं लगा सकता कि किसी अन्य फ़ाइल के मॉड्यूल को कैसे शामिल किया जाए।

मेरा प्रोजेक्ट ट्री कुछ इस तरह दिखता है

├── src
    ├── hello.rs
    └── main.rs

और फ़ाइलों की सामग्री:

src / main.rs

use hello;

fn main() {
    hello::print_hello();
}

src / hello.rs

mod hello {
    pub fn print_hello() {
        println!("Hello, world!");
    }
}

जब मैं इसे cargo build साथ संकलित करता हूं तो मुझे मिलता है

modules/src/main.rs:1:5: 1:10 error: unresolved import (maybe you meant `hello::*`?)
modules/src/main.rs:1 use hello;
                                                  ^~~~~
error: aborting due to previous error
Could not compile `modules`.

मैंने कंपाइलर के सुझावों का पालन करने की कोशिश की और main.rs को संशोधित किया

#![feature(globs)]

extern crate hello;

use hello::*;

fn main() {
    hello::print_hello();
}

लेकिन यह अभी भी बहुत मदद नहीं करता है, अब मुझे यह मिलता है

modules/src/main.rs:3:1: 3:20 error: can't find crate for `hello`
modules/src/main.rs:3 extern crate hello;
                                              ^~~~~~~~~~~~~~~~~~~
error: aborting due to previous error
Could not compile `modules`.

क्या परियोजना के मुख्य फ़ाइल में वर्तमान परियोजना से एक मॉड्यूल को शामिल करने का एक तुच्छ उदाहरण है?

इसके अलावा, मैं रस्ट 0.13.0-नाइटली और कार्गो 0.0.1-प्री-नाइटली चला रहा हूं।


आपको अपने फ़ोल्डर में mod.rs फ़ाइल की आवश्यकता है। उदाहरण के आधार पर जंग इसे बेहतर बताती है।

$ tree .
.
|-- my
|   |-- inaccessible.rs
|   |-- mod.rs
|   |-- nested.rs
`-- split.rs

main.rs

mod my;

fn main() {
    my::function();
}

mod.rs

pub mod nested; //if you need to include other modules

pub fn function() {
    println!("called `my::function()`");
}






rust