Trucs de rubí: detecta l'avaluació dels arguments predeterminats

Bloc

Trucs de rubí: detecta l'avaluació dels arguments predeterminats

Els arguments per defecte són una característica que s’utilitza sovint en el llenguatge de programació Ruby. La seva sintaxi bàsica és simple:

def foo(bar = nil) bar == nil end

Això ens proporciona dues maneres d'assegurar-nos que foo es valora com a vertader:

a = nil foo #=> true foo('a') #=> false foo(a) #=> true

Encara que som curiosos, queda una pregunta: Com detectem si la persona que truca no va passar cap argument o que va passar un argument, que acabava de ser nil?

Per tant, esbrinem com Ruby gestiona els arguments predeterminats mitjançant un altre tipus d’argumentació i veient el resultat:

def foo(bar = []) bar end foo.object_id #=> 2152318880 foo.object_id #=> 2152446600

Per tant, Ruby és prou intel·ligent per crear una nova matriu en cada trucada a foo. És realment capaç de fer-ho amb altres tipus de codi? Sí!

def foo(bar = Object.new) bar end foo #=> # foo #=> #

asquera.de

Trucs de rubí: detecta l'avaluació dels arguments predeterminats

#Trucs de rubí: detecta l'avaluació dels arguments predeterminatsEls arguments per defecte són una característica que s’utilitza sovint en el llenguatge de programació Ruby. La seva sintaxi bàsica és simple: 'def foo (barra = nul) barra == ...