teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

追記

2021/01/27 14:04

投稿

rust
rust

スコア5

title CHANGED
File without changes
body CHANGED
@@ -94,8 +94,19 @@
94
94
 
95
95
  C++の問題点やRustの理念は一応本で読みました。確かにC++は野放図に使うとバグだらけで手に負えないプログラムになるので、Rustのように制約を課して危ないコードはコンパイルできないようにするのは理に適っていると思います。
96
96
 
97
- しかし、グローバルの設定データのようなものは、適切にnamespaceを設定して、その中で変数名も`x`とか`i`みたいな外でも出てきそうな安易な名前を避ければ安全かつ簡単に扱えると思います。
97
+ しかし、グローバルの設定データのようなものは、適切にnamespaceを設定して、その中で変数名も`x`とか`i`みたいな外でも出てきそうな安易な名前を避ければ安全かつ簡単に扱えると思います。C++例:
98
98
 
99
+ ```
100
+ namespace globalSettings
101
+ {
102
+ std::string programName;
103
+ std::string workingDirectory;
104
+ std::string userName;
105
+ }
106
+ ```
107
+
108
+ これならこの値を参照したい、あるいは書き換えたいときに`globalSettings::workingDirectory`を操作するだけです。間違って上書きすることも人並みの注意力があればしないでしょう。
109
+
99
110
  Rustの所有権や借用の理念はわかりますが、この`lazy_static!`については不便すぎではないかと感じていますが、たぶん私がまだRustを始めたばかりで理解が浅いのだと思います。
100
111
 
101
112
  漠然とした質問になりますが、こういう設定データを扱う場合のRustらしい書き方はありますか?`lazy_static!`を使ったこと自体がC++の考え方をひきずっているのかも知れないと思い、この質問を追加しました。