位置:首页 > Ruby > Ruby语法基础知识笔记与常用用法总结

Ruby语法基础知识笔记与常用用法总结

时间:2026-08-17  |  作者:火苗实验室  |  阅读:0

Ruby 的语法笔记,常常是学得快、忘得也快。 下面这份整理,把最常用的一些操作拆成了独立片段,适合随时翻阅。

Ruby语法笔记

基础输入与字符串处理

接受用户输入

在 Ruby 里获取用户输入,最直接的方式就是 gets.chomp。

它会把输入内容读进来,并且自动去掉末尾的换行符。

first_name = gets.chomp

首字母大写

想快速把字符串的首字母变成大写?用 capitalize! 就可以。

first_name.capitalize!

字母变大写

如果希望整个字符串都转为大写,用 upcase! 。

first_name.upcase!

字母变小写

全部变小写用 downcase! 。

注意这些方法结尾的叹号意味着会直接修改原变量。

first_name.downcase!

判断是否包含字符

用 .include 方法可以检查字符串里是否包含某个字符。

注意问号是方法名的一部分。

print 'puts'

user_input = gets.chomp

user_input.downcase!

if user_input.include"s"
  print 'has s'
end

替换字符

用 gsub! 可以做全局替换。

下面的例子把所有字母 s 替换成 th,注意正则的写法。

# s -> th
user_input.gsub!(/s/,"th")

在字符串中输出变量值

字符串中嵌入变量用 #{ }。

写成这样就能直接打出变量的当前值。

puts 'okok #{user_input}'

多行输出

用 HERE document,也就是 <

中间的 EOF 只是一个结束标记,也可以换成其他单词。

print <

注释

Ruby 的注释很轻量,一行以 # 开头就够了。

# 我是注释

变量与作用域

变量获取

在双引号字符串中嵌入变量值,用 #{变量名} 即可。

这个写法在 Ruby 里随处可见。

#{first_name}

变量作用域

Ruby 的变量按照作用域分成几类,需要区分清楚:

  • 全局变量:以 $ 开头
  • 类变量:以 @@ 开头
  • 实例变量(也叫方法变量):以 @ 开头
  • 局部变量:以小写字母或 _ 开头

条件判断

if/else 条件判断

条件判断的写法很直观。

注意 Ruby 使用的是 elsif,不是 else if。

if a < b
  puts '1'
elsif b < a
  puts '2'
end    

unless 条件

unless 相当于“如果不满足条件”,和 if 是相反逻辑。

后面同样可以接 else。

unless false
  print 'ok'
else
  print 'no'
end    

类与方法

定义类与方法

定义一个类用 class 关键字,方法用 def。

调用前需要先用 .new 创建实例。

class Classname
  def functionname(params)
    puts params
  end
end

class1 = Classname.new
class1.functionname('1')

循环与迭代

while 循环

while 是经典的条件循环。

当条件为真时,会反复执行代码块。

counter = 1

while counter < 11
  puts counter
  counter = counter + 1
end

Until 循环

until 和 while 相反,在条件为假时执行。

直到条件变为真才停止。

counter = 1
until counter > 10
  print counter
  counter = counter + 1
end 

+= 、 -= 、 *= 、 /= — Ruby 不支持 ++ 和 -- 这种递增递减运算符,上面的写法足够用了。

for 循环

如果用“1...10”,表示从 1 到 9,不包括 10。

如果写成“1..10”,则包含 10,细节不同,容易踩坑。

for num in 1...10
  puts num
end  

Loop Method

迭代器(Iterator)本质上是 Ruby 里一种重复执行代码块的方法。

这里的 loop do ... end 是一个无限循环,需要用 break 手动跳出。

i = 20
loop do
  i -= 1
  print "#{ i }"
  break if i <= 0
end  

Next 跳过

在循环里用 next 可以跳过当前迭代,直接进入下一轮。

下面的例子只打印偶数。

i = 20
loop do
 i -= 1
 next if i%2 != 0
 print "#{i}"
 break if i <= 0
end

.times 迭代器

当你明确知道要循环多少次时,.times 是最简洁的选择。

10.times { print 'ok' })

Looping with 'While'

再贴一个 while 的完整例子,从 1 打印到 50。

num = 1

while num <= 50 do
  print num
  num += 1
end  

Looping with 'Until'

until 的对应写法,同样是从 1 到 50。

num = 1
until num > 50 do
  print num
  num += 1
end  

Loop the Loop with Loop

使用 loop 配合 break 也可以实现固定次数的循环。

只是需要自己维护计数器。

num = 0

loop do
  num += 1
  print "Ruby!"
  break if num == 30
end  

数组与常用迭代器

数组

数组的创建很简单,方括号加逗号分隔即可。

my_array = [1,2,3,4,5]

.each 迭代器

.each 是最常用的数组迭代方法。

支持两种写法:大括号版本适合简短逻辑,do...end 版本适合多行逻辑。

numbers = [1, 2, 3, 4, 5]

# one way to loop
numbers.each { |item| puts item }

# another way to loop
numbers.each do |item|
 puts item
end

字符串拆分

.split 方法

split 可以将字符串按指定分隔符拆分成数组。

下面的例子演示了用户输入文本后,再让用户输入一个要屏蔽的词,然后依次输出每个单词。

text.split(",")

puts "Text to search through: "
text = gets.chomp
puts "Word to redact"
redact = gets.chomp

words = text.split(" ")

words.each do |word|
  print word
end

总结

以上这些片段,大部分是每天写 Ruby 都会碰到的操作。

把它们记熟,日常开发会顺畅很多。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多