返回

Ruby 中的对象基础

后端

Ruby 对象

在 Ruby 中,所有的数据结构和值都是对象,包括基本的数字和字符串以及数组 Array、散列表 Hash 这样的复杂数据结构。对象是表示现实世界实体或概念的数据结构,它具有状态(属性)和行为(方法)。

每个对象都能够响应一组特定的消息。消息是对象可以执行的操作。对象能够接收的每个消息都有一个相应的方法。例如,String 对象可以响应消息 length,它返回字符串的长度。

消息传递

消息传递是 Ruby 中对象交互的主要机制。要向对象发送消息,只需使用点号语法后跟消息名称即可。例如,以下代码向一个字符串对象发送 length 消息:

"Hello".length # => 5

实例变量

实例变量是与特定对象关联的数据。它们以一个 @ 符号开头,例如 @name。实例变量只能在创建它们的实例中访问。

class Person
  def initialize(name)
    @name = name
  end

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

person = Person.new("John")
person.greet # => "Hello, my name is John!"

类方法

类方法是与类本身(而不是特定实例)关联的方法。它们以 self. 前缀,例如 self.all。类方法通常用于访问类状态或创建新实例。

class Person
  def self.all
    # 返回所有 Person 实例的数组
  end

  def self.create(name)
    # 创建一个新的 Person 实例
  end
end

Person.all # => [<Person>, <Person>, ...]
Person.create("John") # => <Person>

模块

模块是 Ruby 中代码重用的机制。它们允许将相关的方法和常量分组在一起,并将其包含到其他类和模块中。

module Greeter
  def greet
    "Hello!"
  end
end

class Person
  include Greeter

  def name
    "John"
  end
end

person = Person.new
person.greet # => "Hello!"

深入探索

在本文中,我们介绍了 Ruby 对象基础的几个基本概念。通过更深入地了解对象、消息传递、实例变量、类方法和模块,你可以构建更强大、更灵活的 Ruby 程序。