Разработка на RoR

3.86K
.

много скобок я запутался

.
No-Tactic

геттеры и сеттеры
допустим, наш обьект имеет несколько свойств, которые задаются в initialize
по умолчанию эти свойства нельзя ни получить ни изменить

class User

  def initialize(options)
    @name = options[:name] # с собачкой пишется инстансная переменная
    @age  = options[:age]
  end

  def name # геттер
    @name
  end

  def name=(n) # сеттер
    @name = n
  end

  def age
    @age
  end

  def age=(a)
    @age = a
  end

end


но такой способ, имхо, неудобен/ т.к если много свойств, которые нужно получить и записать, будет очень много кода
есть способ проще:
class User

  def initialize(options)
    @name = options[:name]
    @age  = options[:age]
    @weight = options[:weight] # третье свойство для полноты примера
  end

  attr_reader :name  # позволяет читать свойство @name
  attr_writer :weight # позволяет перезаписать @weight
  attribute_accessor :age # позволяет и считать и записать @age

end
.
Eurogon (25.07.2013 / 15:23)
L!MP, сколько ЯП ты знаешь ?
ламп, вопрос прозвучал
.

Koenig, про def тебе сказали , а option это, грубо говоря ассоциативный массив

.
(\/)____o_O____(\/)

No-Tactic, собака это типо $this->

.

Синтаксис напрягает...Ф

.

Fenixrus, я только на PHP и JS нормально код могу писать.
Остальное так, поверхностно. Т.е практика мало или вовсе нет.

.
nan4ik (25.07.2013 / 15:30)
Синтаксис напрягает...Ф
уже троих
.
(\/)____o_O____(\/)

No-Tactic, я понимаю код любого языка, почти весь, все же они примерно из одного и того же состоят

.

L!MP, тогда я, знаешь, сколько языков знаю?

Всего: 145