[JAVA] Comprendre les caractéristiques de Scala en 5 minutes (Introduction à Scala)
introduction
«Connaissez-vous Scala?
«Oh, c'est un sort défensif, non?
"(゚ Д ゚) ha?"
J'ai résumé les fonctionnalités pour ceux qui ne connaissent pas Scala pour que cela ne se produise pas.
Qu'est-ce que la scala
- Un langage de programmation qui combine les caractéristiques d'un langage orienté objet et d'un langage fonctionnel.
--Le nom vient du "langage évolutif".
- Il fonctionne sur Java et peut être lié aux programmes Java existants.
- Est-ce que votre rival est groovy? Dans la performance, Scala semble gagner massivement.
Fonctionnalité
- Tout est un objet. Il n'y a pas de type primitif.
- En raison du typage statique, une erreur est détectée au moment de la compilation.
-Déterminer automatiquement le type avec une inférence de type puissante. Ainsi, la déclaration décide uniquement s'il s'agit d'une variable ou d'une constante.
//Déclaration de variable
var user = getUser()
var user: User =null Null ne peut pas être déduit comme prévu, une déclaration de type est donc requise
//Déclaration constante
val str = "TEST"
--Null peut être utilisé, mais la politique est d'éviter de l'utiliser autant que possible. (Utilisez le type Option. Certains ou Aucun)
- Une programmation fonctionnelle pure est possible. (Utilisez val (constante) et collection immuable (List, Set, Map))
- La programmation procédurale est également possible. (Utilisez des variables et des collections de variables (List, Set, Map))
- Les fonctions peuvent également être traitées comme des objets.
- Les classes existantes peuvent être étendues. (En déclarant une conversion de type automatique, il semble qu'une méthode a été ajoutée.)
- Il y a un trait. (Interface avec l'implémentation et les champs)
- Des fermetures peuvent être utilisées.
- Un outil de construction est disponible. (SBT)
- Les classes Java peuvent également être utilisées. (La bibliothèque Java peut également être utilisée) * Cependant, notez que les collections Java et Scala sont différentes et doivent être converties. C'est assez ennuyeux.
--XML (HTML) peut être écrit directement dans le programme.
var html =
<HTML>
<Body>
getcontent()
</Body>
</HTML>
convert(html)
--Il existe une chaîne de caractères sur plusieurs lignes.
――Si vous faites de votre mieux, vous pouvez également développer des applications Android.
Démérite
«Il y a tellement de conventions linguistiques et la langue elle-même est relativement difficile, donc le coût d'apprentissage est élevé.
――En ce qui concerne le développement d'applications Web, vous pouvez choisir le framework Play. (Il y en a d'autres.)
- Il n'y a pas de pause ou de continuer. (Bien que ce soit le cas, il est difficile à utiliser car il est implémenté de force par try-catch.)
Autre
- Le fondateur de java (James Gosling) et le développeur de JRuby (Charles Nutter) disent que "Scala est le successeur de java".
- Le créateur de Grovy (James Strachan) a également exprimé son soutien à Scala.
--Twitter a déplacé le backend de Ruby à Scala en 2009.
--Le framework Play prend en charge Scala.
- Il y a aussi une bibliothèque folle appelée Scalaz faite par des gens qui ne sont pas satisfaits de Scala. (Une bibliothèque qui complète la bibliothèque Scala)
--Il existe également des plug-ins eclipse pour scala et eclipse pour scala.
finalement
Si vous vous souvenez des caractéristiques ci-dessus, une femme gentille dira un jour: «Vous connaissez Scala».
Peut être dit.
Au fait, quand j'ai dit "Utilisons Scala" sur les lieux, cela a été rejeté.
Par conséquent, je n'ai aucune expérience pratique avec Scala, et je suis un amateur qui vient de le toucher comme un passe-temps.
Je veux l'utiliser pour les affaires un jour.
Mais j'aime vraiment kotlin.