1. 什么是 Ruby?
Ruby 是一种动态、开源、面向对象的编程语言,由日本程序员松本行弘(Yukihiro Matsumoto,简称 Matz)于 1995 年创建。它以简单易读和开发者友好著称,常用于 Web 开发(比如 Ruby on Rails 框架)、脚本编写和自动化任务。
2. 基本语法
Ruby 的语法非常简洁,设计目标是让代码读起来像自然语言。以下是一些基础示例:
输出文本
puts "Hello, World!" # 打印并换行
print "Hello, " # 打印但不换行
p "Hello" # 打印原始数据,常用于调试
变量
Ruby 不需要显式声明变量类型,直接赋值即可:
name = "Alice" # 字符串
age = 25 # 整数
height = 1.75 # 浮点数
is_student = true # 布尔值
3. 数据类型
Ruby 支持以下常见数据类型:
- 字符串(String):
"hello"
或'hello'
- 整数(Integer) 和 浮点数(Float):
42
,3.14
- 布尔值(Boolean):
true
,false
- 数组(Array):
[1, 2, 3]
或["apple", "banana"]
- 哈希(Hash):键值对集合,例如
{ name: "Alice", age: 25 }
或"name" => "Alice"
- 符号(Symbol):
:name
(轻量级、不可变的标识符)
示例:
fruits = ["apple", "banana", "orange"]
person = { "name" => "Bob", "age" => 30 }
symbol = :hello
4. 控制流
条件语句
age = 18
if age >= 18
puts "You are an adult."
elsif age >= 13
puts "You are a teenager."
else
puts "You are a child."
end
循环
# 简单循环
3.times { puts "Hello!" }
# 遍历数组
fruits = ["apple", "banana", "orange"]
fruits.each do |fruit|
puts "I like #{fruit}"
end
5. 方法(函数)
Ruby 使用 def
定义方法:
def greet(name)
"Hello, #{name}!"
end
puts greet("Alice") # 输出:Hello, Alice!
带默认参数:
def greet(name = "Guest")
"Hello, #{name}!"
end
puts greet # 输出:Hello, Guest!
puts greet("Bob") # 输出:Hello, Bob!
6. 类和对象
Ruby 是面向对象的语言,一切皆对象。以下是一个简单类的例子:
class Person
def initialize(name, age) # 构造函数
@name = name # 实例变量
@age = age
end
def introduce
"Hi, I'm #{@name} and I'm #{@age} years old."
end
end
person = Person.new("Alice", 25)
puts person.introduce # 输出:Hi, I'm Alice and I'm 25 years old.
7. Ruby 的特色
- 一切皆对象:连数字都是对象,比如
5.times { puts "Hi" }
- 块(Blocks):Ruby 的块非常强大,常用于迭代或回调:
3.times do |i|
puts "Count: #{i}"
end
- 简洁性:Ruby 省略了很多不必要的符号,比如分号和括号(在很多情况下是可选的)。
8. 实践练习
试试以下任务:
- 编写一个方法,接受一个数字并返回它的平方。
- 创建一个数组,包含 5 个你喜欢的东西,然后用
each
遍历打印它们。 - 定义一个
Car
类,包含brand
和color
属性,并添加一个description
方法。
9. 下一步
如果你想深入学习,可以尝试:
- Ruby on Rails:用于快速构建 Web 应用。
- Gem:Ruby 的库和依赖管理工具,例如
gem install pry
安装调试工具。 - 更多资源:查阅 Ruby 官方文档 或在线教程。
你的选择
- 如果你想让我解答上面的练习,直接告诉我你的代码,我会帮你检查!
- 如果你想跳到某个特定主题(比如数组、类或 Rails),告诉我。
- 如果你想要互动式学习,我可以一步步带你写代码。
你想从哪里开始?
发表回复