Назад к вопросам
Junior
214
questionbank

Что такое аргумент для класса?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Аргумент для класса в Ruby - это значение, передаваемое в его метод initialize. Этот метод вызывается при создании нового экземпляра класса с помощью Class.new или синтаксического сахара, такого как ClassName.new(...). Аргументы позволяют конфигурировать создаваемый объект, устанавливая его начальное состояние.

class Person
  attr_reader :name, :age

  # Метод initialize принимает аргументы
  def initialize(name, age)
    # И использует их для инициализации экземпляра
    @name = name
    @age = age
  end
end

# При создании экземпляра передаются аргументы
person1 = Person.new("Alice", 30)
person2 = Person.new("Bob", 25)

puts person1.name # Выводит "Alice"
puts person2.age # Выводит 25

Аргументы могут быть обязательными, необязательными (с значениями по умолчанию), с ключевыми словами (keyword arguments) или переменным числом (splat operator *).

class Example
  # Обязательный аргумент, необязательный с значением по умолчанию, ключевой аргумент, переменное число аргументов
  def initialize(required_arg, optional_arg = "default", keyword_arg: "keyword", *splat_args)
    puts "Required: #{required_arg}"
    puts "Optional: #{optional_arg}"
    puts "Keyword: #{keyword_arg}"
    puts "Splat: #{splat_args.inspect}" # inspect для отображения массива
  end
end

# Пример использования с различными типами аргументов
Example.new(1)
# Output:
# Required: 1
# Optional: default
# Keyword: keyword
# Splat: []


Example.new(1, 2, keyword_arg: "custom value", 3, 4)
# Output:
# Required: 1
# Optional: 2
# Keyword: custom value
# Splat: [3, 4]