INIファイルにブール値を設定するために使用されるさまざまな方法を見てきました。
variable = true
variable = 1
variable = on
variable = yes
最も標準的、一般的、および/または好ましい方法はどれですか?
INIファイルにブール値を設定するために使用されるさまざまな方法を見てきました。
variable = true
variable = 1
variable = on
variable = 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を使用できます。したがって、唯一の欠点はサイズであり、ほとんどのコンテキストでマイナーになる可能性があります。