
代码示例:
以下是一份关于 Ruby 语法的详细笔记示例,涵盖了基础语法、控制结构、数据结构、方法定义等多个方面,你可以根据实际需要进行调整和补充。
一、Ruby 基础语法
1. 注释
# 单行注释
=begin
多行注释
可以跨越多行
=end
2. 变量定义
# 局部变量
name = "Ruby"
number = 10
# 实例变量
@instance_variable = "Instance"
# 类变量
@@class_variable = "Class"
# 全局变量
$global_variable = "Global"
3. 基本数据类型
# 整数
integer = 10
# 浮点数
float = 3.14
# 字符串
string = "Hello, Ruby!"
# 布尔值
boolean_true = true
boolean_false = false
# 符号(Symbol)
symbol = :ruby
4. 字符串操作
# 字符串拼接
name = "Ruby"
greeting = "Hello, " + name + "!"
# 使用插值
greeting = "Hello, #{name}!"
# 多行字符串
multi_line_string = "This is a
multi-line string."
# 使用换行符
multi_line_string = "This is a\nmulti-line string."
二、控制结构
1. 条件语句
# if 语句
number = 10
if number > 5
puts "Number is greater than 5"
end
# if-else 语句
if number > 5
puts "Number is greater than 5"
else
puts "Number is not greater than 5"
end
# unless 语句
unless number > 5
puts "Number is not greater than 5"
end
# 条件表达式
puts number > 5 ? "Number is greater than 5" : "Number is not greater than 5"
2. 循环语句
# while 循环
number = 0
while number < 5
puts number
number += 1
end
# until 循环
number = 0
until number >= 5
puts number
number += 1
end
# for 循环
for i in 0..5
puts i
end
# 使用 each 方法
(0..5).each do |i|
puts i
end
三、数据结构
1. 数组
# 创建数组
array = [1, 2, 3, 4, 5]
# 访问数组元素
puts array[0] # 输出 1
# 添加元素
array << 6
array.push(7)
# 删除元素
array.pop # 删除最后一个元素
array.delete_at(0) # 删除索引为 0 的元素
# 遍历数组
array.each do |element|
puts element
end
2. 哈希(Hash)
# 创建哈希
hash = { "name" => "Ruby", "version" => "3.0" }
# 使用符号作为键
hash = { name: "Ruby", version: "3.0" }
# 访问哈希值
puts hash["name"] # 输出 "Ruby"
puts hash[:version] # 输出 "3.0"
# 添加键值对
hash["author"] = "Matz"
# 删除键值对
hash.delete("author")
# 遍历哈希
hash.each do |key, value|
puts "#{key}: #{value}"
end
四、方法定义
1. 定义方法
# 定义一个简单方法
def greet(name)
puts "Hello, #{name}!"
end
# 调用方法
greet("Ruby")
# 带默认参数的方法
def greet(name = "Guest")
puts "Hello, #{name}!"
end
# 调用方法
greet() # 输出 "Hello, Guest!"
greet("Ruby") # 输出 "Hello, Ruby!"
# 带可变参数的方法
def sum(*numbers)
total = 0
numbers.each do |number|
total += number
end
total
end
# 调用方法
puts sum(1, 2, 3, 4) # 输出 10
2. 返回值
# 方法的返回值是最后一行表达式的值
def add(a, b)
a + b
end
# 调用方法并获取返回值
result = add(5, 3)
puts result # 输出 8
# 使用 return 显式返回值
def multiply(a, b)
return a * b
end
# 调用方法并获取返回值
result = multiply(4, 2)
puts result # 输出 8
五、类与对象
1. 定义类
# 定义一个类
class Person
# 初始化方法
def initialize(name, age)
@name = name
@age = age
end
# 实例方法
def greet
puts "Hello, my name is #{@name} and I am #{@age} years old."
end
end
# 创建对象
person = Person.new("Alice", 25)
# 调用实例方法
person.greet # 输出 "Hello, my name is Alice and I am 25 years old."
2. 继承
# 定义父类
class Animal
def initialize(name)
@name = name
end
def speak
puts "#{@name} makes a sound."
end
end
# 定义子类
class Dog < Animal
def speak
puts "#{@name} barks."
end
end
# 创建子类对象
dog = Dog.new("Buddy")
# 调用子类方法
dog.speak # 输出 "Buddy barks."
3. 类方法
# 定义类方法
class MathUtils
def self.add(a, b)
a + b
end
end
# 调用类方法
result = MathUtils.add(3, 5)
puts result # 输出 8
六、模块(Module)
1. 定义模块
# 定义模块
module MyModule
def my_method
puts "This is a method from MyModule."
end
end
# 使用模块
class MyClass
include MyModule
end
# 创建对象并调用模块中的方法
obj = MyClass.new
obj.my_method # 输出 "This is a method from MyModule."
2. 模块的混入(Mixin)
# 定义模块
module MixinModule
def mixin_method
puts "This is a mixin method."
end
end
# 使用模块
class MixinClass
include MixinModule
end
# 创建对象并调用混入的方法
mixin_obj = MixinClass.new
mixin_obj.mixin_method # 输出 "This is a mixin method."
七、异常处理
1. 基本异常处理
begin
# 可能会引发异常的代码
result = 10 / 0
rescue ZeroDivisionError => e
puts "Error: #{e.message}"
end
2. 处理多种异常
begin
# 可能会引发异常的代码
result = 10 / 0
rescue ZeroDivisionError => e
puts "ZeroDivisionError: #{e.message}"
rescue TypeError => e
puts "TypeError: #{e.message}"
else
puts "No exception occurred."
ensure
puts "This block always executes."
end
3. 自定义异常
# 定义自定义异常类
class MyCustomError < StandardError
end
begin
# 抛出自定义异常
raise MyCustomError, "This is a custom error."
rescue MyCustomError => e
puts "Caught custom error: #{e.message}"
end
八、常用方法和技巧
1. 数组常用方法
# 创建数组
array = [1, 2, 3, 4, 5]
# 获取数组长度
puts array.length # 输出 5
# 检查数组是否包含某个元素
puts array.include?(3) # 输出 true
# 排序数组
sorted_array = array.sort
puts sorted_array.inspect
**更多技术文章见公众号: 大城市小农民**
1781

被折叠的 条评论
为什么被折叠?



