0Pricing
Ruby Academy · 课时

创建范围

包含端点与不包含端点的范围

创建范围 是 CoddyKit 上的免费 Ruby Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ruby Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ruby Academy 课程共包含 4 节课。

什么是范围?

范围表示起始值和结束值之间的一个序列。使用两个点表示,例如 1..5。

r = 1..5
puts r
puts r.class

包含结束值的范围

两个点会创建一个包含结束值的范围。1..5 包含 1、2、3、4、5。

puts (1..5).to_a.inspect

不包含结束值的范围

三个点会创建一个不包含结束值的范围,在结束值之前停止。1...5 包含 1、2、3、4。

puts (1...5).to_a.inspect

遍历范围

范围支持 each,因此您可以直接循环,而不必先将其转换为数组。

(1..3).each { |n| puts "count #{n}" }

字母区间

字母同样适用于区间。'a'..'e' 会遍历字母表。

puts ('a'..'e').to_a.inspect

检查成员关系

include? 和 cover? 用于检查某个值是否落在区间内。对于数字,cover? 更快。

r = 1..10
puts r.include?(5)
puts r.cover?(11)

case 语句中的区间

区间在 case 语句中尤其好用,因为 === 会检查成员关系。

score = 85
grade = case score
        when 90..100 then "A"
        when 80...90 then "B"
        else "C"
        end
puts grade

min、max 和 sum

数值区间可以直接提供 min、max 和 sum。

r = 1..10
puts r.min
puts r.max
puts r.sum

使用 step 遍历区间

step 会按照指定的增量遍历区间。

(0..10).step(2) { |n| print "#{n} " }
puts

用于切片的区间

在数组或字符串的方括号中使用区间,即可获取其中的一段。

letters = %w[a b c d e]
puts letters[1..3].inspect
puts "hello"[0..2]

无限区间

省略末尾即可创建无限区间,适合将数组切片到末尾。

nums = [10, 20, 30, 40]
puts nums[1..].inspect

快速检查

检查您对区间的理解。

回顾

您已经学会了区间:

  • 1..5 包含末值,而 1...5 不包含末值
  • 使用 each 和 step 进行遍历
  • 字母区间和 case 的用法
  • min、max、sum、切片和无限区间

下一步:Enumerable 模块。

puts (1..100).sum

常见问题解答

「创建范围」课时是免费的吗?

是的 — 「创建范围」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ruby Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ruby Academy 课程共包含 4 节课。

「创建范围」这节课中我会学到什么?

包含端点与不包含端点的范围 你通过在浏览器中直接运行的动手代码来练习 Ruby Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Ruby Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Ruby Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「创建范围」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Ruby Academy 课中编写并运行代码吗?

能。每节 Ruby Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 创建范围
  2. Enumerable 模块
  3. map、select、reject
  4. reduce 与 each_with_object
← 返回 Ruby Academy