2016-11-12 3 views
1

次のような関数の内部構造を定義することができます。関数内の構造を定義することは、他の関数から構造を隠す良い方法ですか?

fn user_status() -> bool { 
    struct UserStatus { 
     logined: bool, 
     name: Option<String>, 
    } 
    // ... 
    true 
} 

が、これは他の関数から構造を隠すための良い方法ですと構造は何かが関数を呼び出すか、それは一度だけ作成されるたびに定義されていますか?

答えて

5

これは、関数内でのみ使用される型を定義するための完全に合理的な方法だと思います。

タイプはコンパイル時に定義されます。関数が呼び出されるときに実行時に「定義」が行われることはありません。