Wie mache ich einen grundlegenden import - /einschließen, der eine Funktion aus einem anderen Modul in Rust 2015?

Ich kann nicht herausfinden, wie zu zählen (oder importieren, injizieren, oder ein anderes Wort) eine Funktion aus einer Datei (Modul) in ein anderes.

Starte ich ein neues Projekt mit

$ cd ~/projects
$ cargo new proj --bin
$ cd proj
$ tree
.
|
-- Cargo.toml
-- src
   |
   -- main.rs

Ich ändern main.rs und erstellen Sie eine neue Datei a.rs (innerhalb der src dir) mit dem folgenden code:

main.rs

fn main() {
    println!("{}", a::foo());
}

ein.rs

pub fn foo() -> i32 { 42 }

Führe ich das Projekt mit cargo run und bekomme die Fehlermeldung:

error[E0433]: failed to resolve: use of undeclared type or module `a`
 --> src/main.rs:2:20
  |
2 |     println!("{}", a::foo());
  |                    ^ use of undeclared type or module `a`

Es scheint, dass ich brauche, um den import der a irgendwie. Ich versuchte, fügen Sie Folgendes als erste Zeile zum main.rs

  • use a;

    error[E0432]: unresolved import `a`
     --> src/main.rs:1:5
      |
    1 | use a;
      |     ^ no `a` in the root
  • use a::*;

    error[E0432]: unresolved import `a`
     --> src/main.rs:1:5
      |
    1 | use a::*;
      |     ^ maybe a missing `extern crate a;`?
    
    error[E0433]: failed to resolve: use of undeclared type or module `a`
     --> src/main.rs:4:20
      |
    4 |     println!("{}", a::foo());
      |                    ^ use of undeclared type or module `a`
  • use a::foo;

    error[E0432]: unresolved import `a`
     --> src/main.rs:1:5
      |
    1 | use a::foo;
      |     ^ maybe a missing `extern crate a;`?
    
    error[E0433]: failed to resolve: use of undeclared type or module `a`
     --> src/main.rs:4:20
      |
    4 |     println!("{}", a::foo());
      |                    ^ use of undeclared type or module `a`
  • extern crate a; use a::foo;

    error[E0463]: can't find crate for `a`
     --> src/main.rs:1:1
      |
    1 | extern crate a;
      | ^^^^^^^^^^^^^^^ can't find crate
  • extern crate proj; use proj::a::foo;

    error[E0463]: can't find crate for `proj`
     --> src/main.rs:1:1
      |
    1 | extern crate proj;
      | ^^^^^^^^^^^^^^^^^^ can't find crate

Habe ich gelesen, die Anleitung aber immer noch nicht herausfinden, wie die Importe.

InformationsquelleAutor vil | 2014-10-06
Schreibe einen Kommentar