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

1.83K
.
много скобок я запутался
.
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