INIファイルにブール値を設定するために使用されるさまざまな方法を見てきました。
- variable = true
- variable = 1
- variable = on
- variable = yes
最も標準的、一般的、および/または好ましい方法はどれですか?
INIファイルにブール値を設定するために使用されるさまざまな方法を見てきました。
variable = truevariable = 1variable = onvariable = yes最も標準的、一般的、および/または好ましい方法はどれですか?
INIファイルの仕様はありませんが、その価値が何であれ、私が知っている言語からのいくつかの実装の動作をリストします。
Pythonの組み込みconfigparserモジュールは、getboolean次のように動作するを提供します。
受け入れられる値...は、、、、、およびであり
'1'、これによりこのメソッドは、、、、、、および、を返し、これにより、このメソッドは。を返します。'yes''true''on'True'0''no''false''off'False
parse_init_file一方、PHPでは、次のようになります。
文字列値「true」、「on」、および「yes」はTRUEに変換されます。「false」、「off」、「no」、および「none」はFALSEと見なされます。
一方、.NETにはINI解析のサポートが組み込まれていませんが、最も人気のあるINI解析ライブラリであるini-parserは、値の自動解析をまったくサポートしておらず、すべてを文字列として返します。そのGettingStartedの例は、ブール値を.NETで解析することを示しています。これは、文字列をBoolean.Parse受け入れ、(任意の大文字で)他に何かが与えられた場合は例外をスローします。"true""false"
要約すると、INIパーサーのさまざまな実装間で、この質問に一貫性はまったくありません。
私がお勧めします:
1ます0。これは、iniファイルのパーサーによって異なります。値は常に文字列です。
true / false:C#では、trueとfalseの文字列を直接boolに変換できます。読みやすさと簡単な変換に匹敵します。より少ないコード。
0/1:boolに変換する前に、文字列0と1をintに変換する必要があります。小さいiniファイルサイズ。読みにくい。より多くのコード。
yes/noおよびon/off私はif/switchステートメントを使用する必要があります。読み取り可能。より多くのコード。
私の好みの方法はtrue/falseです。オブジェクトはtrue/falseにシリアル化されます。これは、0/1として格納されている場合でも、sqlビットタイプでtrue/falseを使用できます。したがって、唯一の欠点はサイズであり、ほとんどのコンテキストでマイナーになる可能性があります。