Google Closure Library:解析布尔值的“正确”方法是什么?

3

在处理Google Closure时,我学到的一件事是,该库几乎拥有我可能需要的所有原始数据操作和管理功能。我需要做的就是在其上构建组件。

今天我试图从字符串中解析布尔值。我惊讶地发现在Google Closure库中没有找到任何可以完成这个任务的东西。

我应该通过引用问题“如何将字符串转换为JavaScript中的布尔值?”中提到的技术自己构建吗,还是有另一种“Google Closure方式”™来解析布尔值,而我没有找到?


这是一个棘手的问题,你不会找到一个方法来解决它,考虑到 Boolean('false') == true 和 Boolean('0') 也是 true。根据你的规则集,自定义的方式是唯一的方法。 - lennel
2个回答

2

不,没有Closure的方法可以做到这一点。

您可以遵循您链接到的问题中提到的建议,或者创建自己的方法,其中包括您认为是真实和虚假的字符串。


1
我的猜测是该库没有包含此类函数,因为它不总是能够准确地得到您所期望的结果(大小写是否敏感?)。我可能会使用goog.string.caseInsensitiveCompare(str, "true")和goog.string.caseInsensitiveCompare(str, "false"),这样可以完全满足您的需求,而不需要任何幕后魔法或错误的空间。
有趣的一点是,goog.string.caseInsensitiveCompare(true, "true")将第一个参数强制转换为字符串,因此返回0(相等)。如果这是一个问题,您可以使用goog.isString或goog.isBoolean提前过滤值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接