`
phoenix520
  • 浏览: 140204 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Ruby中两个!的妙用

    博客分类:
  • Ruby
阅读更多

  今天在Rails中看到一行代码:

@connection.reconnect = !!@config[:reconnect] if @connection.respond_to?(:reconnect=)

  其中的!!有点让人费解,以为这是啥新的语法,打开IRB测试了一下,!!true和!!false这种情况下,加上!!似乎有点多余,但是在!!nil时就不同了,返回的结果为false。

  在yml配置文件中,如果没有配置某个属性,那么config[:property]的值就为nil,如果将这个空值当做fasle赋值给其他变量,则有可能出现莫名其妙的问题,这时候加上!!后,nil就变为了false,避免了可能出现的潜在问题。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics