Warum wird das 'std' Modul nicht deklariert? [Duplikat]

8
    

Diese Frage hat hier schon eine Antwort:

    

Ich versuche, ein einzelnes Zeichen von stdin zu lesen, aber ich kann es nicht funktionieren. In verschiedenen Programmen habe ich genau diese Methode verwendet und es hat funktioniert.

%Vor%

Kompilieren gibt diesen Fehler:

%Vor%     
Fluffy 07.04.2016, 12:52
quelle

1 Antwort

17

Ich nehme an, dass befunge.rs nicht Ihre Kistenwurzel ist, sondern ein Submodul. Pfade wie std::io::stdin() , die außerhalb einer use ...; -Deklaration verwendet werden, sind relativ zum aktuellen Modul, nicht absolut. Um den Pfad absolut zu machen, Präfix :: (wie ein Präfix / in Unix-Pfaden) - & gt; %Code%. Alternativ können Sie ::std::io::stdin() ein Teil des Pfades, wie:

%Vor%

oder

%Vor%

Wenn Sie einen Unterpfad verwenden, wie use mehr als einmal in Ihrem Modul, ist es am besten, std::io it ganz oben zu platzieren.

Wenn Sie sich in der Kiste root befinden, gibt es keinen Unterschied zwischen use und ::std , da der relative Suchpfad der Stamm ist. Es spielt nur in Submodulen eine Rolle. Außerdem: Pfade in std -Deklarationen sind immer absolut - um sie relativ zum aktuellen Modulpräfix use zu machen.

    
Lukas Kalbertodt 07.04.2016, 13:25
quelle

Tags und Links