0
votes

Ruby - quand je devrais utiliser des parenthèses ou non lorsque vous appelez une fonction / méthode

Y a-t-il une norme ou un guide clair pour utiliser ou ne pas utiliser des parenthèses lorsque vous appelez une fonction / méthode?

Par exemple, le code suivant: p>

class ExampleJob < ApplicationJob
  def sqs_event ref :dead_letter
  end
end


3 commentaires

Je ne pense pas que la deuxième ou la troisième est valide Ruby, à moins que certaines fonctionnalités, je ne connais pas.


Les parenthèses doivent être utilisées quand elles sont nécessaires, lorsque vous n'êtes pas certain, ils peuvent être omis et quand, même si vous savez qu'ils ne sont pas nécessaires, vous souhaitez améliorer la lisibilité. Le seul inconvénient d'utiliser des parenthèses inutiles est qu'un casseur de rubyiste avec un trait de personnalité particulier peut soulever un sourcil lors de l'examen de votre code.


Je recommande d'utiliser des parenthèses toujours parce que c'est évident quelle est votre intention, et la langue ne peut pas trébucher faire de mauvaise réputation.


4 Réponses :


1
votes

en rubis, il est généralement facultatif.

ruby ​​a tendance au minimalisme afin qu'ils soient souvent évités. p>

Parfois, ils sont nécessaires tels que dans le RSPEC, attendez-vous où P>

irb(main):007:0> 5 + 6 * 2
=> 17
irb(main):008:0> (5 + 6) * 2
=> 22


0 commentaires

0
votes

Oui, il y a

Je suppose que vous recherchez des directives communautaires depuis Ce n'est pas des guides de style de Ruby Core Team.

Eh bien, chaque fois que vous appelez une méthode, vous devez utiliser des parenthèses, sinon il ne devient pas clair xxx

recommandé de les sauter quand il n'y a pas d'arguments.

Soyez prudent avec Super et super () Ils sont différents!

La seule exception à mon esprit est une sorte de DSL personnalisé, il doit y avoir des règles ou des préférences pour DSL lui-même, par exemple xxx

il est également vrai pour des procédés avec des arguments mots clés: < / p> xxx


1 commentaires

Pendant que votre règle est globalement une bonne (en cas de doute, utilisez des parenthèses), je vous rappelle que des parenthèses sont généralement omises pour le met et impression < / code> appels de méthode.



1
votes

Il n'y a pas de norme officielle pour les meilleures pratiques de code rubis. Cependant, un ensemble de styles préférés a évolué dans la communauté Ruby. C'est une bonne idée de suivre ces styles préférés, tout simplement parce qu'il rend votre code plus facilement lisible par d'autres programmeurs Rubis.

Nick Roz vous a donné un lien vers le guide de style. Je vous recommanderais également d'envisager d'installer et d'utiliser Rubocop . Il vous donnera des commentaires sur quand et quand ils ne doivent pas entre parenthèses arguments, de nombreuses autres questions de formatage tels que l'indentation appropriée et lesquelles des options de syntaxes souvent différentes à choisir dans une situation particulière.

Pour répondre à votre question spécifique sur l'utilisation ou non des parenthèses pour les arguments de la méthode, la réponse est oui, en général. Les exceptions sont, comme le dit le guide, "Méthodes qui ont le statut" mot-clé "dans Ruby". Un exemple est met (réellement le kernel.pants méthode). La plupart des gens n'utilisent pas de parenthèses ici, mais le guide indique qu'ils sont facultatifs.

Un autre exemple, comme Nick a dit (bien que "méthodes avec des arguments de mots clés" n'est pas tout à fait correcte; dans ce cas, les arguments sont des symboles qui représentent des méthodes plutôt que des mots-clés), est attr_accessor , lequel est en fait module.attr_accessor .

Donc, en règle générale, s'il ressemble à une "commande" (un "mot clé", "si vous voulez), mais est en fait une méthode, omettez les parenthèses. Sinon, utilisez-les. Et si vous n'êtes pas sûr de la différence, prenez l'habitude d'utiliser Rubocop.


0 commentaires

0
votes

Selon Matz :

Si des arguments sont donnés à une méthode, ils sont généralement entourés de parenthèses, p>

object.method arg1, arg2


0 commentaires