Ruby语法笔记例子解析

在这里插入图片描述

代码示例:

以下是一份关于 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 
**更多技术文章见公众号:  大城市小农民**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔丹搞IT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值