Latest web development tutorials

Scala grammatica di base

Se sei un programmatore Java prima, e imparare le basi del linguaggio Java, in modo da poter imparare rapidamente la grammatica di base Scala.

Scala e Java la differenza più grande è: Scala e virgola alla fine della dichiarazione, è facoltativo.

Possiamo pensare a programmi Scala è una collezione di oggetti di ogni chiamata di metodo per implementare la messaggistica. Poi si arriva a capire, la classe, il concetto di oggetti, metodi, variabili di istanza:

  • Oggetti - oggetti hanno proprietà e comportamenti.Per esempio: un cane attributi come: colore, nome, comportamento: chiamare, correre, mangiare e così via. L'oggetto è un'istanza di una classe.

  • Class - classe è un oggetto astratto, e l'oggetto è una specifica istanza di una classe.

  • Metodo - il metodo descritto nell'atto di base, una classe può contenere più metodi.

  • Campi - Ogni oggetto ha una propria serie unica di variabili di istanza, vale a dire campi.Proprietà dell'oggetto attraverso l'assegnazione di campo da creare.


Il primo programma Scala

Programmazione interattiva

programmazione interattiva non è necessario creare un file di script, è possibile chiamare il seguente comando:

$ 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> 

modulo script

Possiamo anche creare un file HelloWorld.scala per eseguire codice, il codice HelloWorld.scala come segue:

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

Successivo usiamo comando scalac compilarlo:

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

Dopo la compilazione, possiamo vedere le directory create in file di HelloWorld.class che possono funzionare su Java Virtual Machine (JVM) su.

Dopo la compilazione, è possibile utilizzare il seguente comando per eseguire il programma:

$ scala HelloWorld
Hello, world!
Esempi online >>

La sintassi di base

Scala sintassi di base, tenere presente quanto segue:

  • Maiuscole e minuscole - Scala è case-sensitive, il che significa che il logo Ciao ciao e hanno significati diversi a Scala.

  • Nome classe - per tutti il nome della classe deve essere in maiuscolo prima lettera.

    Se è necessario utilizzare un paio di parole per rappresentare un nome di classe, la prima lettera di ogni parola in maiuscolo.

    Esempio: MyFirstScalaClass classe

  • Nome metodo - la prima lettera di tutti i metodi nomi minuscole.

    Se più parole sono usate per costituire il nome del metodo, la prima lettera di ogni parola dovrebbe essere capitalizzata.

    Esempio: DEF myMethodName ()

  • Il nome del file - il nome del file di programma deve corrispondere esattamente al nome dell'oggetto.

    Quando si salva un file, si dovrebbe salvare il nome dell'oggetto da utilizzare (ricordate Scala è case-sensitive), e aggiungere l'estensione file ".scala". (Se il nome del file e degli oggetti nomi non corrispondono, il programma non verrà compilato).

    Esempio: Diciamo "HelloWorld" è il nome dell'oggetto. Poi il file deve essere salvato come 'HelloWorld.scala "

  • def principali (args: Array [String ]) - Scala programma dal metodo main () inizia il trattamento, che è una parte obbligatoria di ogni programma Scala voce del programma.


Identifiers

Scala può utilizzare due tipi di identificatori, personaggi digitali e simboli.

uso alfanumerico iniziare con una lettera o di sottolineatura può essere seguito dalla lettera o un numero, un simbolo "$" in Scala è anche visto come lettere. compilatore Scala Tuttavia, utilizzando l'identificatore, l'applicazione a "$" all'inizio dell'identificatore è riservato dovrebbe evitare di usare il "$" Start identificativo per evitare conflitti.

Scala e Java convenzione di denominazione utilizzando una simile denominazione cammello, il primo minuscolo carattere, come ad esempio toString. Il primo carattere nomi di classi o maiuscolo. Inoltre, deve essere evitata per sottolineare fine dell'identificatore per evitare collisioni. identificatore Symbol comprende uno o più simboli, come +,?, Ecc, quali:

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

Si utilizzerà l'identificatore sfuggito quando Scala implementazione interna, quali: -> Usa $ colon $ meno $ maggiore per rappresentare il simbolo. Quindi, se avete bisogno di accedere a codice Java: -> metodo, è necessario utilizzare interno nome $ colon $ meno $ maggiore di Scala.

Mixed identificatore alfanumerico dall'identificatore poi seguita da uno o più simboli, come il unary_ Scala + nome + metodo per tempi di implementazione interna. identificatore Letterale per la stringa "è definito, per example` x`` yield`.

È possibile utilizzare qualsiasi identificatore Scala valida in mezzo ", Scala sarà interpretato come un identificatore Scala, un uso tipico per il filo del metodo di resa, a Scala non è possibile utilizzare Thread.yield () è perché il rendimento di Scala le parole chiave, è necessario utilizzare Thread.`yield` () per utilizzare questo metodo.


parole chiave Scala

La seguente tabella elenca le parole chiave Scala riservato, non possiamo usare le seguenti parole chiave come variabili:

astratto caso fermo classe
DEF fare altro si estende
falso finale infine per
forsome se implicito importazione
pigro partita nuovo nullo
oggetto Override pacchetto privato
protetta ritorno sigillato eccellente
questo buttare tratto provare
vero tipo val var
mentre con rendimento
- : = =>
<- <: <% >:
# @

commento Scala

Scala è simile a molti Java supporta commenti a riga singola. commenti su più righe possono essere nidificati, ma devono essere correttamente annidati, un commento che inizia con il simbolo corrispondente alla fine simbolo. compilatore NOTA Scala sarà ignorato, esempi sono i seguenti:

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

Le righe vuote e spazi

Solo una riga con uno spazio o commenti, Scala si pensa che sia una riga vuota, che lo ignorerà. Marks possono essere spazi o commenti per dividere.


newline

Scala è un linguaggio orientato alla linea, l'istruzione con un punto e virgola (;) end o interruzioni di riga. programma di Scala, il punto e virgola alla fine dell'istruzione di solito è opzionale. Se siete disposti a entrare in uno, ma se c'è una sola riga nella dichiarazione o non si scrive. D'altra parte, se si scrive più istruzioni di fila quindi non è necessario il punto e virgola. Es

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

pacchetto Scala

pacchetti personalizzati

Scala è definita utilizzando la pacchetto pacchetto parola chiave, in codice Scala per definire un pacchetto in due modi:

Il primo metodo, e Java, come nell'intestazione file definisce il nome del pacchetto, questo metodo seguire tutti i codici vengono inseriti nel giornale. Ad esempio:

package com.w3big
class HelloWorld

Il secondo metodo è simile a C #, come ad esempio:

package com.w3big {
  class HelloWorld 
}

Il secondo metodo, è possibile definire più pacchetti in un file.

citazione

Scala utilizzando il pacchetto di riferimento parola chiave di importazione.

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

istruzioni import possono apparire ovunque, non solo nella parte superiore del file. i risultati di importazione di estendere fino alla fine del blocco economico. Questo può ridurre significativamente il rischio di conflitti di nomi.

Se si vuole introdurre un pacchetto di diversi membri, è possibile utilizzare il selettore (Picker):

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

Nota: per impostazione predefinita, Scala java.lang._ sempre introdotto, scala._ e Predef._, Qui si può anche spiegare il motivo per cui il capo Scala del pacchetto, quando si usa la scala vengono omessi.