【问题标题】:Google Closure Library: What's the "correct" way to parse a boolean?Google Closure Library:解析布尔值的“正确”方法是什么?
【发布时间】:2013-01-24 00:59:00
【问题描述】:

我在处理 Google Closure 时学到的一件事是,在原始数据操作和管理方面,该库几乎拥有我可能想要的一切。我要做的是在它之上构建组件。

今天我试图从一个字符串中解析一个布尔值。我很惊讶在 Google Closure Library 中没有找到任何东西可以做到这一点。

我是否应该通过问题中引用的技术自己构建这个 “How can I convert a string to boolean in JavaScript?”,还是有另一种“Google Closure way”™ 来解析我找不到的布尔值?

【问题讨论】:

  • 这是一个棘手的问题,你不会找到一种方法来解决它,考虑 Boolean('false') == true 并且 Boolean('0') 也是 true。自定义方式是基于您的规则集的唯一方式。

标签: google-closure google-closure-library


【解决方案1】:

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

您要么遵循链接到的问题中提到的建议,要么创建自己的方法,其中包含您认为正确的字符串和错误的字符串。

【讨论】:

    【解决方案2】:

    我的猜测是该库不包含这样的函数,因为它并不总是典型的您所期望的准确(大小写重要吗?)。我可能会使用 goog.string.caseInsensitiveCompare(str, "true") 和 goog.string.caseInsensitiveCompare(str, "false"),它们完全符合您的要求,没有任何幕后魔法或错误空间。

    一个有趣的注意事项是 goog.string.caseInsensitiveCompare(true, "true") 将第一个参数强制转换为字符串,因此返回 0(表示相等)。如果这是一个问题,您可以使用 goog.isString 或 goog.isBoolean 提前过滤掉值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多