Comment définir plusieurs variables dans un état unique
En Python, je peux définir deux variables avec un tableau en une seule ligne.
>>>[a,b] = [1,2]
>>>a
1
>>>b
2
Comment dois-je faire la même chose en Java?
J'ai un couple de variables dans la classe PCT, qui est de type final. Est-il un moyen de les définir dans une ligne dans un Python comme la mode? Le format suivant toute évidence ne fonctionne pas en Java. J'ai pu les définir séparément, mais il fera appel à la parseFile méthode deux fois que je veux éviter.
public class PCT {
final int start;
final int stop;
public PCT (File file) {
//......
//......
//the following statement does not compile
[start, stop] = parseFile(file);
}
public int[] parseFile(File f) {
int[] aa = new int[2];
//....
//....
return aa;
}
}
- Juste curieux de savoir pourquoi vous voulez cette? Pour le seul but de la réduction de 2 lignes à 1?
- Il est un très commode en Python/Octave/Matlab/... monde passe/définir plusieurs paramètres dans une seule instruction. Quelque chose que le C/C++/Java famille lui manque.
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas possible, mais vous n'avez pas besoin d'appeler
parseFile
deux fois.Écrire votre code comme ceci:
Python (je crois) prend en charge plusieurs valeurs de retour. Java obéit C conventions, et donc n'est pas permis. Car qui ne fait pas partie de la langue, de la syntaxe, il n'est pas, sens légèrement brut hacks comme le
temp
tableau sont nécessaires si vous êtes en train de faire plusieurs retours.Vous pouvez définir plusieurs variables comme ceci :
Chaque variable dans une seule ligne peut également être attribuée à la valeur spécifique de trop:
Un aspect plus est, alors que vous vous apprêtez commun variable de type dans la même ligne, à partir de la droite variables assignées vous pouvez affecter des variables sur la gauche, par exemple :
Remarqué, vous pouvez également pratiquer des opérations arithmétiques sur des variables en restant dans la même ligne.
Si vous litéralement dire ligne; aussi longtemps que vous placez un point-virgule entre les deux états, ils sont exécutés comme s'il n'y est une nouvelle ligne entre de sorte que vous pouvez appeler:
Vous pouvez même compresser un ensemble de fichiers dans un oneliner, par la suppression de commentaires (que le champ d'application à la fin de la ligne). D'espacement (espace, tabulation, nouvelle ligne,...) est en général retiré de la Java des fichiers (en mémoire) comme première étape dans le compilateur Java.
Mais vous êtes probablement plus intéressés dans un singe déclaration. Sytax comme
[start, stop] = parseFile(file);
n'est pas pris en charge (au moins pas pour l'instant). Vous pouvez faire un onliner:C'est peut-être ce que vous cherchez:
Java tableau d'affectation (plusieurs valeurs)
Si vous êtes à la recherche d'attribuer de façon explicite pour chaque élément, je ne pense pas que vous pouvez le faire au sein d'une assignation, comme un concept similaire avec le 2-d de l'exemple ci-dessous. Ce qui semble être ce que vous voulez comme Jeremy réponses précise.
Explicitement l'affectation de valeurs à un Tableau 2D?
Lors de la déclaration de plusieurs variables de même type, vous pouvez effectuer les opérations suivantes:
Peut-être