【JupyterNotebook】简单的Ruby 代码

Ruby 是一种简洁、优雅、易于阅读的编程语言,广泛用于 Web 开发(如 Ruby on Rails)和脚本编写。它的语法非常接近自然语言,学习曲线较为平缓。以下是 Ruby 代码的速成教程,帮助你快速上手并理解其基本用法。

1. Ruby 基础语法

1.1 打印输出

Ruby 使用 puts 来打印输出,print 也可以用于输出,但 puts 会在输出后自动换行。

puts "Hello, World!"  # 输出:Hello, World!
print "Hello, "        # 输出:Hello,
print "Ruby!"          # 输出:Ruby!
1.2 变量

Ruby 不需要显式声明变量类型,变量会根据赋值自动推断类型。

name = "Alice"  # 字符串
age = 25        # 整数
is_student = true  # 布尔值
1.3 常量

常量是指不会改变的变量,Ruby 中常量通常使用大写字母表示。

PI = 3.14159  # 常量
1.4 数据类型

Ruby 支持多种数据类型:数字、字符串、布尔值、数组、哈希等。

  • 字符串"Hello"'Hello'
  • 整数10
  • 浮点数3.14
  • 布尔值truefalse
  • 数组[1, 2, 3]
  • 哈希(字典){name: "Alice", age: 25}
# 数组
arr = [1, 2, 3, 4]

# 哈希
person = {name: "Alice", age: 25}

# 布尔值
is_valid = true
1.5 条件语句

Ruby 使用 if, elsif, else 来进行条件判断。

x = 10
if x > 5
  puts "x is greater than 5"
elsif x == 5
  puts "x is equal to 5"
else
  puts "x is less than 5"
end
1.6 循环

Ruby 支持多种循环结构,包括 while, until, 和 for 循环。

  • for 循环
for i in 1..5
  puts i  # 输出 1, 2, 3, 4, 5
end
  • while 循环
i = 1
while i <= 5
  puts i  # 输出 1, 2, 3, 4, 5
  i += 1
end
  • times 循环
5.times do |i|
  puts i  # 输出 0, 1, 2, 3, 4
end
1.7 函数(方法)

Ruby 使用 def 来定义方法,可以通过 return 来返回结果。

def greet(name)
  puts "Hello, #{name}!"
end

greet("Alice")  # 输出 "Hello, Alice!"
1.8 块和迭代器

Ruby 中的块(block)是非常强大的特性,常用于迭代操作。你可以在方法中传递块作为参数,来实现自定义的行为。

[1, 2, 3].each do |num|
  puts num  # 输出 1, 2, 3
end
1.9 数组操作

Ruby 提供了强大的数组操作方法,如 push, pop, each, map 等。

arr = [1, 2, 3, 4]

# 向数组添加元素
arr.push(5)
puts arr  # 输出 [1, 2, 3, 4, 5]

# 遍历数组
arr.each do |num|
  puts num  # 输出 1, 2, 3, 4, 5
end

# 使用 map 对数组元素进行操作
squared_arr = arr.map { |x| x ** 2 }
puts squared_arr  # 输出 [1, 4, 9, 16, 25]
1.10 哈希操作

Ruby 的哈希(hash)结构非常灵活,可以像字典一样存储键值对。

person = {name: "Alice", age: 25}

# 访问值
puts person[:name]  # 输出 "Alice"

# 添加或更新键值对
person[:location] = "Wonderland"
puts person[:location]  # 输出 "Wonderland"

2. 面向对象编程

Ruby 是一门面向对象的语言,几乎所有的内容都是对象。你可以定义类、实例化对象以及使用继承等。

2.1 定义类和创建对象
class Person
  attr_accessor :name, :age

  def initialize(name, age)
    @name = name
    @age = age
  end

  def greet
    puts "Hello, #{@name}!"
  end
end

person = Person.new("Alice", 25)
person.greet  # 输出 "Hello, Alice!"
  • attr_accessor 用于创建 getter 和 setter 方法,方便访问实例变量。
  • initialize 是类的构造函数,用于初始化对象的状态。
2.2 继承
class Student < Person
  def initialize(name, age, grade)
    super(name, age)  # 调用父类的 initialize 方法
    @grade = grade
  end

  def greet
    super  # 调用父类的 greet 方法
    puts "Your grade is #{@grade}."
  end
end

student = Student.new("Bob", 20, "A")
student.greet  # 输出 "Hello, Bob!" 和 "Your grade is A."

3. 异常处理

Ruby 提供了强大的异常处理机制,使用 begin, rescue, 和 ensure 来捕获和处理异常。

begin
  # 可能会抛出异常的代码
  x = 10 / 0
rescue ZeroDivisionError => e
  puts "Error: #{e.message}"
ensure
  puts "This will always be executed."
end

4. Ruby 常用方法

  • each:遍历集合(数组、哈希等)。
[1, 2, 3].each { |num| puts num }
  • map:对集合中的每个元素进行操作并返回新的集合。
arr = [1, 2, 3]
new_arr = arr.map { |x| x * 2 }
puts new_arr  # 输出 [2, 4, 6]
  • select:选择符合条件的元素并返回新的集合。
arr = [1, 2, 3, 4]
even_numbers = arr.select { |x| x.even? }
puts even_numbers  # 输出 [2, 4]
  • inject:通过给定的操作将集合的元素归纳为一个单一值。
sum = [1, 2, 3, 4].inject(0) { |sum, x| sum + x }
puts sum  # 输出 10

5. 总结

Ruby 是一种功能强大、易于上手的编程语言,适用于从 Web 开发到脚本编写等多种用途。通过学习 Ruby 的基本语法、数据结构、面向对象特性以及异常处理,你将能够编写出高效、优雅的代码。如果你想进一步深入学习 Ruby,可以查看 Ruby 官方文档和常用框架如 Ruby on Rails。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值