📜  最佳 Ruby 备忘单 - Ruby (1)

📅  最后修改于: 2023-12-03 14:55:17.328000             🧑  作者: Mango

最佳 Ruby 备忘单 - Ruby

Ruby 是一种简单、动态、面向对象的编程语言,在 web 开发、软件开发、数据分析等领域有广泛的应用。本备忘单概括了 Ruby 的基本语法和常用功能,可用于快速查找语法。

数据类型
字符串
  • 字符串字面值:
"Hello, world"        # 双引号包含的字符串
'Hello, world'        # 单引号包含的字符串
"Hello, #{name}!"     # 字符串插值
  • 字符串方法:
s.length              # 字符串长度
s.empty?              # 字符串是否为空
s.include? 'str'      # 字符串是否包含另一个字符串
s.gsub('old', 'new')  # 字符串替换
s.upcase              # 字符串转为大写
s.downcase            # 字符串转为小写
数组
  • 数组字面值:
[1, 2, 3]             # 数字数组
['a', 'b', 'c']       # 字符串数组
  • 数组方法:
a.length              # 数组长度
a.empty?              # 数组是否为空
a.include? 'obj'      # 数组是否包含某个元素
a.push obj            # 数组末尾增加一个元素
a.pop                 # 弹出数组末尾的元素
a.shift               # 删除数组第一个元素
a.unshift obj         # 在数组头部增加一个元素
a.each {|obj| block}  # 遍历数组并执行代码块
散列
  • 散列字面值:
{key1: value1, key2: value2}  # Ruby 1.9 及更新版本中的字面值
{:key1 => value1, :key2 => value2}  # 旧版 Ruby 的字面值
  • 散列方法:
h.length              # 散列中键值对的数量
h.empty?              # 散列是否为空
h.include? 'key'      # 散列是否包含某个键
h[key] = value        # 设置散列的键值对
h[key]                # 获取散列的值
h.delete key          # 删除散列中的键值对
h.each {|k, v| block}  # 遍历散列并执行代码块
范围
  • 范围字面值:
1..10                 # 包含 1 和 10 的整数范围
1...10                # 包含 1 不包含 10 的整数范围
  • 范围方法:
r.begin               # 范围起始值
r.end                 # 范围结束值
r.cover? val          # 范围是否包含某个值
控制结构
条件语句
if condition
  # 代码块
elsif condition
  # 代码块
else
  # 代码块
end
循环语句
  • while 循环:
while condition
  # 代码块
end
  • until 循环:
until condition
  # 代码块
end
  • for 循环:
for var in collection
  # 代码块
end
  • each 循环:
collection.each do |var|
  # 代码块
end
迭代器
1.upto(10) {|i| # 代码块 }      # 在 1 至 10 之间迭代
10.downto(1) {|i| # 代码块 }    # 在 10 至 1 之间迭代
collection.each_with_index {|obj, i| # 代码块 }  # 遍历数组并输出元素索引
方法
定义方法
def method_name(arg1, arg2)
  # 代码块
end
调用方法
method_name arg1, arg2
异常处理
begin
  # 代码块
rescue Exception1
  # 异常处理代码块
rescue Exception2
  # 异常处理代码块
else
  # 代码块(没有异常)
ensure
  # 总是执行的代码块
end
类和对象
定义类
class ClassName
  # 实例变量
  def initialize(arg1, arg2)
    # 代码块
  end

  def method_name(arg1, arg2)
    # 代码块
  end
end
创建对象
obj = ClassName.new(arg1, arg2)
继承类
class SubClassName < ClassName
  # 代码块
end
实例变量和访问器方法
class ClassName
  def initialize(arg1, arg2)
    @ivar1 = arg1
    @ivar2 = arg2
  end

  def ivar1  # 访问器方法(读取)
    @ivar1
  end

  def ivar1=(value)  # 访问器方法(写入)
    @ivar1 = value
  end
end
模块和命名空间
模块定义
module ModuleName
  # 代码块
end
模块引用
require 'module_name'
命名空间
module Namespace
  class ClassName
    # 类定义
  end
end