Lorsque vous touchez différentes langues, outre les caractéristiques importantes de la langue, la grammaire détaillée et l'utilisation des symboles deviennent progressivement confuses. Comment écrivez-vous cela dans cette langue? Cela arrive souvent. Parfois, je suis choquée d'avoir beaucoup utilisé une langue, mais je l'ai oubliée à une courte distance. Alors, je vais faire un mémo comme celui-ci.
Scala
if (x >= 30) {
...
} else if (x >= 0) {
...
} else {
...
}
//Expression, pas déclaration
val max = if (a > b) a else b
{}
peut être omis s'il y a une expression dans {}
(dangling else problem ) Oui)
--Expression, pas déclaration{...}
dans l'exemple ci-dessus, et la parenthèse du milieu n'est pas une spécification de l'expression if mais une partie de la syntaxe de l'expression bloc. Si vous mettez une expression autre qu'une expression de bloc, elle aura la même apparence que si la parenthèse du milieu en langage C était omise.Conditional Expressions - Expressions | Scala 2.13
Java
if (x >= 30) {
...;
} else if (x >= 0) {
...;
} else {
...;
}
{}
peut être omis s'il n'y a qu'une seule phrase dans {}
(dangling else problem ) Oui)The if Statement - Java Language Specification
Rust
if x >= 30 {
...
} else if x >= 0 {
...
} else {
...
}
//Expression, pas déclaration
let max = if a > b { a } else { b };
{}
ne peut pas être omis
--Expression, pas déclarationif Expressions - Control Flow - The Rust Programming Language
if (x >= 30) {
...;
} else if (x >= 0) {
...;
} else {
...;
}
// { }S'il y a une phrase dans{ }Peut être omis
if (x >= 30)
...;
else if (x >= 0)
...;
else
...;
{}
peut être omis s'il n'y a qu'une seule instruction dans{}
(dangling else problem disponible)if x >= 30 {
...
} else if x >= 0 {
...
} else {
...
}
//C'est également possible
if x := f(); x >= 0 {
...
}
{}
ne peut pas être omisIf statements - The Go Programming Language Specification - The Go Programming Language
PHP
if ($x >= 30) {
...;
} else if ($x >= 0) {
...;
} elseif ($x >= 0) { //soit else if ou elseif est OK
...;
} else {
...;
}
//Une autre syntaxe
if ($x >= 30):
...;
elseif ($x >= 0): //sinon si ce n'est pas possible
...;
else:
...;
endif;
{}
peut être omis s'il y a une phrase dans {}
(dangling else problem ? q = balançant + autre) Oui)PHP: if - Manual PHP: Another Syntax for Control Structures-Manual
Perl
if ($x >= 30) {
...;
} elsif ($x >= 0) {
...;
} else {
...;
}
#Opposition
unless ($x >= 0) {
...;
}
#Modificateur de déclaration(Postfix si syntaxe)
... if $x >= 0;
... unless $x >= 0;
{}
ne peut pas être omisInstruction composite --perlsyn --Perl grammar --perldoc.jp Modificateurs de déclaration --perlsyn - Syntaxe de Perl --perldoc.jp
Python
if x >= 30:
...
elif x >= 0:
...
else:
...
if Statements - More Control Flow Tools — Python 3.8.0 documentation
Ruby
if x >= 30
...
elsif x >= 0
...
else
...
end
#Opposition
unless x >= 0
...
end
#Expression, pas déclaration
max = if a > b then a else b end
#si modificateur(Postfix si syntaxe)
... if x >= 0;
... unless x >= 0;
then
à la fin de ʻif et ʻelsif
, mais il peut être omis si les sauts de ligne continuent.