`
java-admin
  • 浏览: 1376515 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

ruby 中的 && ,|| ,!! (转)

 
阅读更多

http://selfcontroller.iteye.com/blog/1208365

 

 

和其他语言不一样的是||和&&运算不是返回true或false,而是某个操作数

&&操作符:先求解它们的第一个操作数,如果为false,那么返回它们的第一个操作数,否则,返回第二个操作数。

||操作符:先求解它们的第一个操作数,如果为true,那么返回它们的第一个操作数,否则,返回第二个操作数。



||有一个常用的用法就是x||=3,其实就是x=x||3,当,不存在x这个变量,x就为false,所以返回3,x就等于三了。

这就实现了一个功能,就是在变量还没有值的时候给变量赋值。

引申一下,其实x&&=3这种形式也是很有用的用法,先看一下下面这种情况
    if str.nil? 
      nil 
    else 
      str.upcase 
    end 

#或可以写成三元表达式形式 
str.nil?? nil:str.upcase


当str不存在的时候返回nil,存在的时候返回大写形式不就是
str &&= str.upcase
&&=是不是在需要判断变量存在不存在的时候很有用啊

还有一个就是!这个运算符了,!又跟其他语言一样,返回true或false,唯一需要记住的是,字符串,正则表达式,range不能作为!的参数.

在ruby中,如果想把一个字符转换为bool值,可以用两个!,例如
!!abc ====> true  (!abc 为false,再一个!就是true)所以在看到两个!的时候千万别见怪,只是把某些字符或者值转换为bool而已

分享到:
评论

相关推荐

    ruby 之 html 转 word 代码

    在Ruby编程语言中,Rails框架是一个非常流行的Web开发平台,它允许开发者快速构建功能丰富的应用程序。HTML是一种广泛用于网页设计的标记语言,而Word文档则是常见的办公文档格式。本篇文章将详细探讨如何在Rails...

    ruby编码转换

    本篇文章将详细介绍如何在Ruby 1.9环境中进行编码转换,包括如何查看字符串的编码信息、如何强制更改字符串的编码以及如何使用`encode`方法来进行实际的编码转换。 #### 一、获取字符串的当前编码 在Ruby 1.9中,...

    Ruby-Ruby库和CLI命令可视化终端中的各种Unicode和ASCII编码

    在Ruby编程语言中,处理Unicode和ASCII编码是常见的任务,特别是在处理文本数据、与用户交互或构建命令行界面(CLI)应用时。本篇文章将深入探讨如何利用Ruby库和CLI命令在可视化终端中有效地显示和操作这些编码。 ...

    ditaa-ditaa:ditaa-ditaa是一个Jekyll插件,它利用ditaa将使用ascii艺术绘制的图转换为适当的位图图形。 [未维护]

    达塔迪塔 –通过Ascii Art– Stathis Sideris撰写的文章是: 一个用Java编写的小型命令行实用程序,可以将使用ascii art绘制的图(“图形”包含类似于| /-的线条的字符)转换为适当的位图图形。...

    Ruby-qtbindings允许你在Ruby中使用QTGui工具包

    在Ruby中使用QTGui工具包,开发者可以利用Ruby的简洁语法和动态特性,同时享受到QT提供的强大GUI设计能力。通过qtbindings,Ruby程序员可以直接调用QT的类和方法,创建复杂的窗口应用、控件、布局和信号与槽机制,而...

    ruby 阳历农历转换类

    在Ruby编程语言中,开发一个阳历农历转换类是一个实用的功能,它可以帮助用户方便地进行日期之间的转换。这个“ruby 阳历农历转换类”很可能是为了满足开发者或普通用户在处理涉及到中国传统文化和节日的日期计算时...

    Ruby Under a Microscope An Illustrated Guide to Ruby Internals

    尽管从表面来看,类和模块在Ruby中有着明显的区别,但在语言的底层实现中,它们的结构可能非常相似,这对于理解Ruby内部机制以及如何有效地组织代码都非常重要。 此外,本书涉及了Ruby不同版本(包括Ruby 2.x、1.9...

    ruby中文转拼音的api

    在rails 中 把 pinyin.rb 及 dict 放到lib目录中。 在模型中引入文件。 require "pinyin" 按后实例化一个pinyin py = PinYin.instance py.to_pinyin_abbr("刘德华") #=> ldh py.to_permlink('中文轉漢語拼音') ...

    Ruby-Money一个Ruby库来处理货币和货币转换

    在Ruby社区中,它被视为一个非常实用且功能丰富的库,能够帮助开发者以一种更规范和安全的方式处理货币。 Money库的核心特性包括: 1. **货币对象**:Money库创建了一个名为`Money`的类,用于表示特定金额和货币...

    Ruby转JavaScript的编译器Opal.zip

    Opal 是一个 Ruby 转 JavaScript 的编译器. Opal 将 Ruby 源码转成 JavaScript 源码,运行速度很快,包含一个编译器、核心库和运行时实现。 标签:Opal

    Ruby-从FM网站如获取音频并转换到MP3格式

    在Ruby编程语言中,从FM网站获取音频并将其转换为MP3格式涉及到多个步骤和相关的技术。这个过程通常包括网络请求、数据解析、音频下载以及音频编码转换。下面将详细介绍这些知识点。 首先,你需要了解如何使用Ruby...

    Ruby-Ruby的线性回归

    标题中的“Ruby-Ruby的线性回归”表明我们要讨论的是如何在Ruby编程语言中实现线性回归分析。线性回归是一种统计学方法,用于研究两个或多个变量之间的关系,特别是因变量与一个或多个自变量之间的关系。在这个场景...

    [转] ruby学习一个综合小练习

    标题中的“ruby学习一个综合小练习”表明这是一个关于Ruby编程语言的学习资源,可能是通过一个实际的小项目或练习来帮助学习者提升对Ruby的理解。描述中提到的“博文链接”指向了一个特定的博客文章,虽然没有给出...

    ruby脚本转二进制可执行程序工具

    这是一个将ruby脚本转换成二进制可执行文件的工具,使用简单方便,功能强大,解压编译后生成rubyc可执行程序!转换ruby脚本时 使用rubyc 脚本.rb即可,可以自动检测依赖关系!使用非常方便!

    Ruby-TensorStream用Ruby重新实现TensorFlow

    这意味着整个框架不依赖于TensorFlow的C++或Python接口,而是完全在Ruby环境中运行。这为Ruby开发者提供了更直观、更无缝的体验,同时也减少了跨语言交互的复杂性。纯Ruby实现也意味着更少的依赖项,简化了安装和...

    用ruby读excel文件生成xml文件

    `roo`是Ruby中用于读取不同类型的电子表格文件(如Excel、OpenOffice、Google Sheets)的库。安装`roo`可以通过在终端运行`gem install roo`来完成。 然后,我们导入`roo`库并创建一个对象来读取Excel文件。例如: ...

    Ruby Data-Processing ruby数据处理

    Map、Reduce和Select是Ruby中用于操作和处理数据的关键概念,它们在数据科学、分析和软件工程领域中扮演着重要角色。 1. **Ruby Map**: Map函数允许我们将一个操作应用到数组或集合中的每一个元素上,然后返回一个...

    Ruby-rabl普通的ruby模板包含jsonbsonxmlplist和msgpack支持

    Ruby是一种动态、面向对象的编程语言,而RABL(Ruby API Builder Language)是Ruby社区中一个流行的模板库,专门用于生成结构化的数据输出,如JSON、BSON、XML、Plist和MsgPack。这些格式在Web开发中尤其重要,因为...

    crystal_ruby, 在Crystal中,编写 ruby 扩展.zip

    crystal_ruby, 在Crystal中,编写 ruby 扩展 crystal_ruby在晶体中写入 ruby 扩展。 这只是一个概念证明的证明。$ make test_ruby.bundlecrystal sample/test_ruby.cr --link-flags"-dynam

    From Java to Ruby

    另外,Ruby中的模块(Module)和Java的包(Package)相似,但模块还扮演着命名空间和混入(Mix-in)的角色。混入允许模块中的方法被其他类直接继承和使用,这是一种不同于Java继承的独特方式。 在错误处理方面,...

Global site tag (gtag.js) - Google Analytics