[RAILS] [Contrôle de compréhension Ruby] Pouvez-vous expliquer ce qui se passe? && et et

J'avais une question intéressante alors je l'ai partagée dans un format de test

phénomène

def ampersand_return
  puts "foo" && return
  puts "bar"
end

def and_return
  puts "foo" and return
  puts "bar"
end

> ampersand_return
=> nil

> and_return
foo
bar
=> nil

Pouvez-vous expliquer ce qui se passe?

Répondre

En règle générale, la différence entre && et ʻand` réside dans sa priorité.

Pour && return

&& est calculé en premier et a la même valeur que ci-dessous

puts ("foo" && return)

Puisque «foo» est vrai, «return» sur le côté droit est traité et la méthode retourne sans rien afficher.

ʻEt retour`

met" foo " est calculé en premier et a la même valeur que ci-dessous

(puts "foo") and return

Puisque «put» renvoie «nil», le côté droit de «et» n'est pas traité, les deux «foo» «et« bar »» sont affichés et la méthode se termine normalement.

À la fin

La documentation n'est-elle pas spécifiée sur les opérateurs où l'appel de méthode est prioritaire, comme dans l'exemple ʻand? Yo Selon [This Stack Overflow Answer](https://stackoverflow.com/a/42077277/3891638), ʻand, ʻor, ʻif, ʻunless, ʻuntil, while, rescue Semble se comporter de cette façon

Recommended Posts

[Contrôle de compréhension Ruby] Pouvez-vous expliquer ce qui se passe? && et et
Vérifiez l'existence de has_many et appartient_to-optional: Qu'est-ce qui est vrai?
Qu'est-ce qu'un module Ruby?
[Ruby] Qu'est-ce qu'une instance?
Qu'est-ce que les microservices et les frameworks de microservices
Qu'est-ce qu'un tableau bidimensionnel Ruby?
[Note technique] Qu'est-ce que "inclure" dans Ruby?
Qu'est-ce que Java et l'environnement de développement (MAC)
Qu'est-ce que la vérification de signature RSA et pourquoi?
[Ruby] Les résultats du calcul entre les points décimaux sont différents, différents ou pas ce que vous vouliez.