我在处理 Google Closure 时学到的一件事是,在原始数据操作和管理方面,该库几乎拥有我可能想要的一切。我要做的是在它之上构建组件。
今天我试图从一个字符串中解析一个布尔值。我很惊讶在 Google Closure Library 中没有找到任何东西来做到这一点。
我是否应该通过问题“如何在 JavaScript 中将字符串转换为布尔值? ”中引用的技术自己构建它,或者是否有另一种“Google Closure way”™ 来解析我找不到的布尔值?
我在处理 Google Closure 时学到的一件事是,在原始数据操作和管理方面,该库几乎拥有我可能想要的一切。我要做的是在它之上构建组件。
今天我试图从一个字符串中解析一个布尔值。我很惊讶在 Google Closure Library 中没有找到任何东西来做到这一点。
我是否应该通过问题“如何在 JavaScript 中将字符串转换为布尔值? ”中引用的技术自己构建它,或者是否有另一种“Google Closure way”™ 来解析我找不到的布尔值?
不,没有 Closure 方法可以做到这一点。
您要么遵循链接到的问题中提到的建议,要么创建自己的方法,其中包含您认为正确的字符串和错误的字符串。
我的猜测是该库不包含这样的功能,因为它并不总是您期望的准确(大小写重要吗?)。我可能会使用 goog.string.caseInsensitiveCompare(str, "true") 和 goog.string.caseInsensitiveCompare(str, "false"),它们完全符合您的要求,没有任何幕后魔法或错误空间。
一个有趣的注意事项是 goog.string.caseInsensitiveCompare(true, "true") 将第一个参数强制转换为字符串,因此返回 0(表示相等)。如果这是一个问题,您可以使用 goog.isString 或 goog.isBoolean 提前过滤掉值。