Latest web development tutorials

Scala grammaire de base

Si vous êtes un programmeur Java avant, et d'apprendre les rudiments de langage Java, de sorte que vous pouvez rapidement apprendre la grammaire de base Scala.

Scala et Java la plus grande différence est: Scala virgule à la fin de l'instruction, est facultative.

Nous pouvons penser programme Scala est une collection d'objets de chaque appel de méthode pour mettre en œuvre la messagerie. Ensuite, nous arrivons à comprendre, la classe, le concept des objets, des méthodes, des variables d'instance:

  • Objets - objets ont des propriétés et des comportements.Par exemple: un des attributs de chien comme: la couleur, le nom, le comportement: appeler, courir, manger et ainsi de suite. Objet est une instance d'une classe.

  • Classe - classe est un objet abstrait, et l'objet est une instance spécifique d'une classe.

  • Méthode - la méthode décrite dans l'acte de base, une classe peut contenir plusieurs méthodes.

  • Fields - Chaque objet a son propre ensemble unique de variables d'instance, à savoir les domaines.Propriétés de l'objet à travers l'affectation de champ à créer.


Le premier programme Scala

programmation interactive

Programmation interactive pas besoin de créer un fichier de script, vous pouvez appeler la commande suivante:

$ scala
Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_31).
Type in expressions to have them evaluated.
Type :help for more information.

scala> 1 + 1
res0: Int = 2

scala> println("Hello World!")
Hello World!

scala> 

sous forme de script

Nous pouvons également créer un fichier HelloWorld.scala pour exécuter du code, le code HelloWorld.scala comme suit:

object HelloWorld {
   /* 这是我的第一个 Scala 程序
    * 以下程序将输出'Hello World!' 
    */
   def main(args: Array[String]) {
      println("Hello, world!") // 输出 Hello World
   }
}

Ensuite, nous utilisons la commande scalac pour le compiler:

$ scalac HelloWorld.scala 
$ ls
HelloWorld$.class	HelloWorld.scala
HelloWorld.class	

Après la compilation, on peut voir les répertoires créés sous fichier HelloWorld.class qui peuvent fonctionner sur une machine virtuelle Java (JVM) sur.

Après la compilation, nous pouvons utiliser la commande suivante pour exécuter le programme:

$ scala HelloWorld
Hello, world!
Exemples en ligne >>

La syntaxe de base

syntaxe de base Scala, notez ce qui suit:

  • Sensible à la casse - Scala est sensible à la casse, ce qui signifie logo Bonjour bonjour et avoir des significations différentes dans Scala.

  • Nom de classe - pour tout le nom de la classe première lettre doit être en majuscule.

    Si vous avez besoin d'utiliser quelques mots pour constituer un nom de classe, la première lettre de chaque mot en majuscule.

    Exemple: classe MyFirstScalaClass

  • Nom de la méthode - la première lettre de toutes les méthodes nom minuscules.

    Si plusieurs mots sont utilisés pour constituer le nom de la méthode, la première lettre de chaque mot doit être en majuscule.

    Exemple: def myMethodName ()

  • Nom du fichier - le nom du fichier de programme doit correspondre exactement au nom de l'objet.

    Lorsque vous enregistrez un fichier, il doit enregistrer le nom de l'objet à utiliser (rappelez-vous Scala est sensible à la casse), et ajouter l'extension de fichier ".scala". (Si le nom de fichier et objet noms ne correspondent pas, le programme ne sera pas compilé).

    Exemple: Disons "HelloWorld" est le nom de l'objet. Ensuite, le fichier doit être enregistré en tant que "HelloWorld.scala"

  • def principales (args: Array [chaîne ]) - Scala programme à partir de la méthode main () commence le traitement, ce qui est un élément obligatoire de chaque programme Scala d'entrée de programme.


Identifiants

Scala peut utiliser deux formes d'identifiants, de caractères numériques et des symboles.

utilisation alphanumérique commence par une lettre ou un soulignement peut être suivi de la lettre ou le numéro, un symbole «$» dans Scala est également considéré comme des lettres. compilateur Scala Cependant, en utilisant l'identifiant, l'application de «$» au début de l'identificateur est réservé doit éviter d'utiliser le "$" Identifiant de début pour éviter les conflits.

Scala et Java convention de nommage en utilisant un chameau de nommage similaire, le premier minuscules de caractères, tels que toString. Le premier caractère de noms de classe ou en majuscules. En outre, il doit être évité afin de souligner la fin de l'identifiant pour éviter les collisions. identificateur de symbole comprend un ou plusieurs symboles, tels que +,?, etc., tels que:

+ ++ ::: < ?> :->

Il utilisera l'identifiant échappé lorsque la mise en œuvre interne Scala, tels que: -> Utiliser $ colon $ moins $ de plus pour représenter le symbole. Donc, si vous avez besoin d'accéder à du code Java: -> méthode, vous devez utiliser interne nom $ colon $ moins $ plus de Scala.

identifiant alphanumérique mixte de l'identifiant suivi plus tard par un ou plusieurs symboles, tels que le unary_ Scala + nom + méthode pour le temps de mise en œuvre interne. identificateur Literal pour la chaîne "est définie, pour example` x`` yield`.

Vous pouvez utiliser un identificateur Scala valide entre les deux ", Scala sera interprété comme un identifiant Scala, une utilisation typique pour la discussion de la méthode du rendement, à Scala vous ne pouvez pas utiliser Thread.yield () est parce que le rendement de la Scala mots-clés, vous devez utiliser Thread.`yield` () pour utiliser cette méthode.


mots-clés Scala

Le tableau suivant dresse la liste des mots-clés réservés scala, nous ne pouvons pas utiliser les mots-clés suivants comme variables:

résumé cas capture classe
def faire autre étend
faux final enfin pour
forsome si implicite importation
paresseux match nouveau nul
objet override paquet privé
protégé retour scellé super
cette jeter trait essayer
vrai type val var
tandis que avec rendement
- : = =>
<- <: <% >:
# @

Scala commentaire

Scala est semblable à beaucoup Java prend en charge commentaires sur une ligne. commentaires multi-lignes peuvent être imbriquées, mais doivent être correctement imbriquées, un commentaire qui commence par un symbole correspondant à la fin symbole. NOTE compilateur Scala sera ignoré, les exemples sont les suivantes:

object HelloWorld {
   /* 这是一个 Scala 程序
    * 这是一行注释
    * 这里演示了多行注释
    */
   def main(args: Array[String]) {
      // 输出 Hello World
      // 这是一个单行注释
      println("Hello, world!") 
   }
}

Les lignes vides et les espaces

Une seule ligne avec un espace ou des commentaires, Scala pense qu'il est une ligne vide, il l'ignorer. Les notes ne peuvent être des espaces ou des commentaires pour diviser.


newline

Scala est un langage orienté ligne, la déclaration avec un point-virgule (;) fin ou les sauts de ligne. programme Scala, le point-virgule à la fin de l'instruction est généralement facultative. Si vous êtes prêt à entrer, mais s'il n'y a qu'une seule ligne dans la déclaration ou non écrire. D'autre part, si vous écrivez des déclarations multiples dans une rangée de sorte que le point-virgule est nécessaire. Par exemple

val s = "本教程"; println(s)

package Scala

Forfaits sur mesure

Scala est définie en utilisant le package package de mot-clé, dans le code Scala pour définir un ensemble de deux façons:

La première méthode, et Java, comme dans l'en-tête de fichier définit le nom du package, cette méthode suivent tous les codes sont placés dans le journal. Par exemple:

package com.w3big
class HelloWorld

La deuxième méthode est quelque peu similaire à C #, tels que:

package com.w3big {
  class HelloWorld 
}

La deuxième méthode, vous pouvez définir plusieurs paquets dans un fichier.

citation

Scala utilisant package de référence mot-clé import.

import java.awt.Color  // 引入Color
 
import java.awt._  // 引入包内所有成员
 
def handler(evt: event.ActionEvent) { // java.awt.event.ActionEvent
  ...  // 因为引入了java.awt,所以可以省去前面的部分
}

déclarations d'importation peuvent apparaître partout, pas seulement au début du fichier. résultats de l'importation de l'extension à la fin du bloc d'instructions. Cela peut réduire de manière significative la probabilité de conflits de noms.

Si vous souhaitez introduire un ensemble de plusieurs membres, vous pouvez utiliser le sélecteur (Picker):

import java.awt.{Color, Font}
 
// 重命名成员
import java.util.{HashMap => JavaHashMap}
 
// 隐藏成员
import java.util.{HashMap => _, _} // 引入了util包的所有成员,但是HashMap被隐藏了

Remarque: Par défaut, Scala java.lang._ toujours introduit, scala._ et Predef._, Ici vous pouvez également expliquer pourquoi la tête de scala du paquet, lorsque vous utilisez le scala sont omis.