2016-08-04 10 views
0

Ich habe nicht ganz verstanden, wie unsichere Zuweisungen funktionieren. Der folgende Code gibt mir einige Fehler:Unsichere Zuweisung gibt leere Struktur zurück

fn num() -> u64 { 
    1; 
} 

fn test() -> u64 { 
    let x = unsafe { 
     num(); 
    }; 
    return x; 
} 

Der Fehler ist:

src/main.rs:37:9: 37:10 note: expected type `u64` 
src/main.rs:37:9: 37:10 note: found type `()` 

habe ich wirklich example zu diesem ähnlich ist. Seltsam, dass ich den exakt gleichen Code habe, obwohl ich nicht kompilieren kann.

Antwort

2

Semikolons.

fn num() -> u64 { 
    1 
} 

fn test() -> u64 { 
    let x = unsafe { 
     num() 
    }; 
    return x; 
} 

See also this answer about semicolons.

+0

Und natürlich sollte die Funktion keine 'return' haben:' fn test() -> u64 {unsich {num()}} '. – Shepmaster

+0

Das ist eine Frage des Stils, nicht der Korrektheit oder Moral. –

+0

Ich bin mehr als glücklich, Vorschläge für Stil (und Moral) als Evangelium zu geben. Außerdem stimmt Clippy mir zu. – Shepmaster

Verwandte Themen