我已经看到了用于在INI文件中设置布尔值的各种方法:
variable = truevariable = 1variable = onvariable = yes哪种是规范,常见和/或首选方式?
Mar*_*ery 11
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不提供任何自动解析值的支持,并将它们全部作为字符串返回.它的入门示例显示使用.NET解析布尔值Boolean.Parse,它将接受字符串"true"和"false"(任何大小写)并在给定其他任何内容时抛出异常.
总结:在INI解析器的不同实现之间,这个问题绝对没有一致性.
我建议:
1和0.它取决于ini文件的解析器。值始终是字符串。
true / false:在C#中,我可以将true和false字符串直接转换为bool。等同于可读性和易于转换。更少的代码。
0/1:在转换为bool之前,我必须将字符串0和1转换为int。较小的ini文件大小。可读性较差。更多代码。
是/否和开/关我必须使用if / switch语句。可读的。更多代码。
我首选的方式是对/错。对象序列化为true / false,即使存储为0/1,也可以对sql位类型使用true / false。因此,唯一的缺点是尺寸,在大多数情况下尺寸可能很小。
| 归档时间: |
|
| 查看次数: |
11009 次 |
| 最近记录: |