美文网首页
Ruby方法中的!和?

Ruby方法中的!和?

作者: 结局怎么写 | 来源:发表于2023-12-11 16:24 被阅读0次
方法名后缀为"!"的方法

在Ruby中,方法名后缀为"!"的方法通常表示该方法会修改调用它的对象。这种约定起源于Smalltalk语言,在Ruby中广泛使用。

当一个方法后面带有"!"符号时,这个方法通常会修改调用它的对象的状态。例如,如果我们对一个数组调用sort!方法,这个方法会对数组进行排序,并返回排序后的数组,而原始数组将被修改。

下面是一个例子:

rubynumbers = [3, 1, 2]
sorted_numbers = numbers.sort! 
# 修改原始数组,并返回排序后的数组  
# puts numbers 
# 输出: [1, 2, 3]  
# puts sorted_numbers 
# 输出: [1, 2, 3]

在这个例子中,sort!方法修改了原始数组numbers的状态,并返回了排序后的数组。

需要注意的是,有些方法同时有带"!"和不带"!"的版本。例如,sort方法不会修改原始数组,而是返回一个新的排序后的数组。因此,我们需要仔细查看方法的文档来了解它们的行为。

方法名后缀为"?"的方法

在Ruby中,以"?"结尾的方法通常表示该方法返回一个布尔值(true或false)。这种约定使得代码更加可读和易于理解。

例如,Ruby中有很多方法以"?"结尾,如nil?empty?blank?等。这些方法通常用于条件判断,根据给定的条件返回true或false。

以下是一些示例:

# 使用nil?方法判断变量是否为nil  
if my_variable.nil?    
    puts "my_variable is nil"  
else
    puts "my_variable is not nil"
end    
# 使用empty?方法判断字符串是否为空  
if my_string.empty?
    puts "my_string is empty"  
else
    puts "my_string is not empty"  
end    
# 使用blank?方法判断字符串是否为空白(只包含空格、制表符等空白字符)
if my_string.blank?
    puts "my_string is blank"  
else
    puts "my_string is not blank"  
end

在这些示例中,通过调用以"?"结尾的方法,我们可以根据条件判断得到相应的结果。这些方法通常用于控制程序流程,根据条件执行相应的操作。

反引号

在Ruby中,反引号用于执行shell命令,并将执行结果作为字符串返回。以下是反引号的使用方法:

  1. 反引号包围一个shell命令,Ruby会执行该命令,并将执行结果作为字符串返回。
  2. 使用puts方法打印该变量的值。

例如:

output=`ls -l`  
puts output

在上述代码中,ls -l命令会在shell中执行,并返回结果。然后,将结果赋值给变量output,并使用puts方法打印该变量的值。

相关文章

  • From Objective-C to Ruby(4)-类和模块

    类 定义类 OC: ruby: 初始化方法 OC: ruby: 实例变量和属性 OC: ruby: 类方法和对象方...

  • ruby 中的类方法和实例方法

    类方法与实例方法 实例方法是最常用的方法。假设有一个对象(实例),那么以这个对象为接收者的方法就被称为实例方法 接...

  • 器-用:ruby高效能方法 — reduce方法

    一、reduce方法的作用 reduce方法是ruby中的一个重要的方法,也叫inject方法(Ruby1.9之前...

  • ruby 方法调用中的*和&

    在ruby方法定义、调用中,*可以把数组转化为参数,&可以把Proc或lambda转化为块,在开发中可以起到很好的...

  • Ruby中的动态方法

    一、什么是动态方法?这就要从静态语言和动态语言的区别说起,静态语言比如Java,在编译阶段就需要运行对象调用的所有...

  • Ruby中的*eval方法

    摘要 instance_eval:运行时,代码块的接受者会变成self。(84页)class_eval:在一个已存...

  • Ruby中的method方法

    在Java 8中,有方法引用的概念,可以省略形式参数: String::toUpperCase即方法引用(Meth...

  • Ruby中map,reduce,reject,select,co

    Ruby学习中,对这几个方法用法记下。

  • Effective Ruby

    一、 让自己熟悉Ruby 1、理解 Ruby 中的 True 在 Ruby 中,除了 false 和 nil, 其...

  • Ruby安装(Mac)

    Ruby安装 ruby-install 和 chruby 管理 Ruby ruby-install能在任意目录中编...

网友评论

      本文标题:Ruby方法中的!和?

      本文链接:https://www.haomeiwen.com/subject/eiemgdtx.html