Thursday 15 August 2013

ruby - Assigning multiple values to setter at once: self.x = (y, z) results in a syntax error -



ruby - Assigning multiple values to setter at once: self.x = (y, z) results in a syntax error -

i'm trying define class method using 2 arguments - title , author. when seek pass arguments i'm getting argument error

syntax error, unexpected ',', expecting ')' book.set_title_and_author= ("ender's game", "orson scott card")

class book def set_title_and_author= (title, author) @title = title @author = author end def description "#{@title}was written #{@author}" end end book = book.new book.set_title_and_author= ("ender's game", "orson scott card) p book.description

am not allowed pass more 1 argument in setter method or there else i'm missing?

you indeed can't pass more 1 argument method ends in =. setter method doesn't need end in =, though, naturally: can set_title_and_author(title, author).

another alternative have method take array:

def set_title_and_author= (title_and_author) @title, @author = title_and_author end #... book.set_title_and_author= ["ender's game", "orson scott card"]

if latter, stylistically i'd recommend removing set , calling method title_and_author=. set redundant =.

ruby syntax setter getter-setter

No comments:

Post a Comment