Tutoriel Scala Scala est un langage de programmation multi-paradigmes, conçu pour intégrer diverses fonctionnalités de programmation orientée objet et de programmation fonctionnelle.
Scala est un langage de programmation multi-paradigmes, un langage de programmation similaire à Java. Il est conçu pour implémenter un langage évolutif et intégrer diverses fonctionnalités de programmation orientée objet et de programmation fonctionnelle.
Premier programme Scala
Ce qui suit est un programme Hello World typique écrit en Scala :
Exemple
object HelloWorld extends App { println("Hello, world!") }
Exécuter l'instance»
Cliquez sur le bouton "Exécuter l'instance" pour afficher l'exemple en ligne
ou
Instance
object HelloWorld { def main(args: Array[String]) { println("Hello, world!") } }
Exécuter l'instance»
Cliquez sur le bouton "Exécuter l'instance" pour afficher l'instance en ligne
Veuillez noter en quoi elle est similaire à l'application Hello World de Java. Une différence significative est que la version Scala du programme Hello World ne marque pas la méthode main comme méthode statique via le mot-clé static, mais utilise le mot-clé object pour créer un singleton.
En supposant que le programme est enregistré en tant que fichier HelloWorld.scala, il peut être compilé via la ligne de commande suivante :
> scalac HelloWorld.scala
Pour exécuter :
> scala -classpath . HelloWorld
N'est-ce pas similaire à la compilation et à l'exécution du programme « Hello World » de Java ? En fait, le modèle de compilation et d'exécution de Scala est équivalent à Java, il est donc également compatible avec les outils de construction de Java, tels que Ant.
Vous pouvez également exécuter le programme directement à l'aide de l'interpréteur Scala, en utilisant l'option -i (charger à partir du code du fichier ) et l'option -e (pour exécuter du code supplémentaire, vous devez réellement exécuter la méthode de l'objet HelloWorld) :
> scala -i HelloWorld.scala -e 'HelloWorld.main(null)'
Conseils : Nos tutoriels Scala vous aideront à acquérir les connaissances Scala du débutant au avancé. Si vous avez des questions, veuillez vous rendre sur le site Web PHP chinoisScala Community pour poser vos questions, et des internautes enthousiastes y répondront pour vous.
Fonctionnalités Scala
Paradigmes de programmation pris en charge
Fonctionnalités orientées objet
Scala est un langage purement orienté objet, où chaque valeur est un objet. Le type de données et le comportement d'un objet sont décrits par des classes et des traits. Il existe deux manières d’étendre le mécanisme d’abstraction de classe. Une approche est l'héritage de sous-classe et l'autre approche est un mécanisme de mixage flexible. Ces deux approches peuvent éviter les problèmes d'héritage multiple.
Programmation fonctionnelle
Scala est aussi un langage fonctionnel, et ses fonctions peuvent également être utilisées comme valeurs. Scala fournit une syntaxe légère pour définir des fonctions anonymes, prend en charge les fonctions d'ordre supérieur, permet l'imbrication de plusieurs niveaux de fonctions et prend en charge le curry. Les classes de cas de Scala et leur correspondance de modèles intégrée sont équivalentes aux types algébriques couramment utilisés dans les langages de programmation fonctionnels.
De plus, les programmeurs peuvent utiliser la correspondance de modèles de Scala pour écrire du code de type expression régulière afin de traiter les données XML. Dans ces situations, les capacités de compréhension de liste sont utiles pour écrire des requêtes basées sur des formules.
Étant donné que la JVM ne prend pas en charge la récursion de queue, Scala ne peut pas prendre entièrement en charge l'optimisation de la récursion de queue. Cependant, le compilateur Scala peut optimiser certaines récursions simples en boucles.
Le code suivant implémente l'algorithme de tri rapide dans un style fonctionnel, qui peut être comparé à l'exemple de tri rapide d'Erlang :
def qsort(list: List[Int]): List[Int] = list match { case Nil => Nil case pivot :: tail => val(smaller, rest) = tail.partition(_ < pivot) qsort(smaller) ::: pivot :: qsort(rest) }
Typage statique
Scala dispose d'un système de type et d'une vérification au moment de la compilation pour garantir la sécurité et la cohérence des le code . Le système de type prend en charge spécifiquement les caractéristiques suivantes:
catégories générales,
covariance et contavariance,
annotations,
Upper et contraintes liées inférieures sur les paramètres de type, les catégories de lambine et abstractions Types en tant que membres d'objet,
types composites,
spécifiant explicitement les types lors du référencement eux-mêmes,
vues,
méthodes polymorphes.
Extensibilité
Scala est conçu avec le fait qu'en pratique, le développement d'applications spécifiques à un domaine nécessite souvent des extensions de langage spécifiques à ce domaine. Scala fournit un certain nombre de mécanismes de langage uniques qui facilitent et simplifient l'ajout de nouvelles constructions de langage sous forme de bibliothèques :
N'importe quelle méthode peut être utilisée comme opérateur de préfixe ou de suffixe,
les fermetures peuvent être automatiquement construites en fonction du type attendu.
L'utilisation combinée des deux fonctionnalités ci-dessus vous permet de définir de nouvelles instructions sans étendre la syntaxe ni utiliser de fonctionnalités de métaprogrammation telles que les macros.
Concurrency
Scala utilise Actor comme modèle de concurrence. Actor est une entité semblable à un fil qui envoie et reçoit des messages via des boîtes aux lettres. Les acteurs peuvent réutiliser les threads, de sorte que des millions d'acteurs peuvent être utilisés dans le programme, alors que les threads ne peuvent en créer que des milliers. Dans les versions postérieures à 2.10, Akka est utilisé comme implémentation par défaut d'Actor. [20] Le code suivant est une implémentation d'EchoServer utilisant le mode Acteur
val echoServer = actor(new Act { become { case msg => println("echo " + msg) } }) echoServer ! "hi"
Le mode Acteur peut simplifier la programmation simultanée et tirer parti des capacités des processeurs multicœurs.
Ce que couvre ce manuel du didacticiel Scala
Ce didacticiel Scala couvre toutes les connaissances de base et avancées de Scala, y compris la syntaxe de base de Scala, les types de données Scala, les variables Scala, les opérateurs Scala, les fonctions Scala, les chaînes Scala, les classes et les objets Scala. Attendez tous les introduction aux connaissances de base et avancées de Scala.
Conseils : Chaque chapitre de ce tutoriel contient de nombreux exemples Scala. Vous pouvez directement cliquer sur le bouton "Exécuter l'exemple" pour afficher les résultats en ligne. Ces exemples vous aideront à mieux comprendre et utiliser Scala.
Dernier chapitre
- Scala 文件 I/O 2016-10-18
- Scala 提取器(Extractor) 2016-10-18
- Scala 异常处理 2016-10-18
- Scala 正则表达式 2016-10-18
- Scala 模式匹配 2016-10-18
- Scala Trait(特征) 2016-10-18
- Scala 类和对象 2016-10-18
- Scala Iterator(迭代器) 2016-10-18
Cours connexes
- Le dernier didacticiel vidéo ThinkPHP 5.1 en première mondiale (60 jours pour devenir un expert PHP en ligne) 2022-02-17
- Parlons brièvement de la création d'une entreprise en PHP 2023-01-04
- Développement pratique à grande échelle par Tianlongbabu du cadre MVC version Mini imitant le site Web de l'encyclopédie des choses embarrassantes 2018-01-25
- Vérification de connexion et forum de discussion classique 2018-03-02
- Premiers pas avec le développement pratique PHP : création rapide de PHP [Small Business Forum] 2022-06-28
- Démarrage rapide de la version complète de Node.JS 2022-09-30
- Écrivez votre propre framework PHP MVC (40 chapitres en profondeur/gros détails/à lire absolument pour que les débutants progressent) 2022-12-08
- Tutoriel vidéo sur le ressort du cheval soldat 2022-04-12