Comment est l'opérateur conditionnel (? :
) utilisé en Ruby?
Par exemple, est-ce correct?
<% question = question.size > 20 ? question.question.slice(0, 20)+"..." : question.question %>
Comment est l'opérateur conditionnel (? :
) utilisé en Ruby?
Par exemple, est-ce correct?
<% question = question.size > 20 ? question.question.slice(0, 20)+"..." : question.question %>
Votre utilisation de ERB suggère que vous êtes dans les Rails. Si oui, puis envisager truncate
, intégré dans le helper qui fera le travail pour vous:
<% question = truncate(question, :length=>30) %>
@pst a donné une grande réponse, mais je tiens à mentionner que, en Ruby, l'opérateur ternaire est écrit sur une seule ligne pour être syntaxiquement correct, contrairement au Perl et au C où on peut l'écrire sur plusieurs lignes:
(true) ? 1 : 0
Normalement, Ruby va déclencher une erreur si vous tentez de le diviser en plusieurs lignes, mais vous pouvez utiliser l' \
de continuation de ligne symbole à la fin d'une ligne et Ruby sera heureux:
(true) \
? 1 \
: 0
C'est un exemple simple, mais il peut être très utile lorsque vous traitez avec des lignes plus longues qu'il conserve le code joliment aménagé.
J'ai lu des commentaires disant de ne pas utiliser l'opérateur ternaire, car il est source de confusion, mais c'est une mauvaise raison de ne pas utiliser quelque chose. Par la même logique, nous ne devrions pas utiliser des expressions régulières, la gamme des opérateurs ('..
"et apparemment inconnu "flip-flop" de la variation). Ils sont puissants lorsqu'ils sont utilisés correctement, alors nous devons apprendre à les utiliser correctement.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.