Ruby 中的方法

2025-05-27

Ruby 中的方法

方法用于避免在整个程序中重复相同的事情。

创建方法

要创建方法,请使用以下语法:

def my_first_method
  "Hello"
end

puts my_first_method  #=> "Hello"
Enter fullscreen mode Exit fullscreen mode

参数和实参

参数 是方法模板中的占位符变量,而 参数 是调用方法时传递给方法的实际变量。

def add_ten(number)
  number + 10
end

puts add_ten(20)  #=> "30"
Enter fullscreen mode Exit fullscreen mode

在这个例子中,number是一个参数,20是一个自变量。

默认参数

如果不想在调用方法时总是给出参数,请使用默认参数:

def add_ten(number = 1)
  number + 10
end

puts add_ten(20)  #=> "30"
puts add_ten      #=> "11"
Enter fullscreen mode Exit fullscreen mode

方法返回什么

Ruby 为方法提供了隐式返回,它总是返回最后评估的表达式。

Ruby 也提供明确的返回,编写在继续之前检查输入错误的方法很有用。

def even_odd(number)
  unless number.is_a? Numeric
    return "A number was not entered."
  end

  if number % 2 == 0
    "That is an even number."
  else
    "That is an odd number."
  end
end

puts even_odd(30) #=>  That is an even number.
puts even_odd("Egg") #=>  A number was not entered.
Enter fullscreen mode Exit fullscreen mode

谓词方法

?名称末尾 带有问号 ( ) 的方法(例如even?、 odd?或 ) between?是 谓词 方法,这是 Ruby 对返回布尔值的方法使用的命名约定。

puts 3.even?  #=> false
puts 10.even?  #=> true
puts 171.odd?  #=> true

puts 13.between?(10, 15)  #=> true
Enter fullscreen mode Exit fullscreen mode

Bang 方法

!方法名称末尾带有感叹号 ( ) 的方法。

! 通过在方法末尾添加 ,您可以表明此方法执行其操作并同时用结果覆盖原始对象的值。

whisper = "HEY"
puts whisper.downcase! #=> "hey"
puts whisper #=> "hey"
Enter fullscreen mode Exit fullscreen mode
文章来源:https://dev.to/harkato/methods-in-ruby-16ce
PREV
从头开始构建用 Node.js 编写的数据库
NEXT
如何组织你的 git 分支 Gitflow 强化版 Gitflow BPMP (分支-推送-合并-修剪) 基于模块 基于版本 基于工单 基于表情符号 最后的话