Digamos que tengo una clase Ruby:¿Es posible que class.property = x devuelva algo que no sea x?
class MyClass
def self.property
return "someVal"
end
def self.property=(newVal)
# do something to set "property"
success = true
return success # success is a boolean
end
end
Si yo trato de hacer MyClass.property=x
, el valor de retorno de toda la declaración es siempre x. Es una convención en muchos lenguajes basados en C/inspirados para devolver un valor booleano de "éxito". ¿Es posible hacer esto para un colocador usando la "sintaxis igual" en Ruby?
Además, si esto no es posible, ¿por qué no? ¿Hay alguna desventaja concebible para permitir que una operación de "igual configurador" devuelva un valor?
leí por primera vez esto como "si ha definido un descriptor de acceso de esa manera, se rompería la semántica de asignación encadenados ". Como la respuesta de rampion deja en claro, ese no es el caso: el valor de retorno de un método de asignación normalmente se ignora. Lo que Martin está diciendo es "el lenguaje no te permite hacer eso; si lo hiciera, romperías la semántica de asignación encadenada". –