Latest web development tutorials

Scala gramática básica

Si usted es un programador de Java antes, y aprender los conceptos básicos del lenguaje Java, por lo que puede aprender rápidamente la gramática básica Scala.

Scala y Java la mayor diferencia es: Scala punto y coma al final de la instrucción; es opcional.

Podemos pensar en el programa Scala es una colección de objetos por cada llamada a un método para implementar la mensajería. A continuación llegamos a entender, la clase, el concepto de objetos, métodos, variables de instancia:

  • Objetos - objetos tienen propiedades y comportamientos.Por ejemplo: a atributos perro-como: color, el nombre, el comportamiento: llamada, correr, comer y así sucesivamente. Objeto es una instancia de una clase.

  • Clase - clase es un objeto abstracto, y el objeto es una instancia específica de una clase.

  • Método - el método descrito en el acto de base, una clase puede contener varios métodos.

  • Campos - Cada objeto tiene su propio conjunto único de variables de instancia, a saber campos.Las propiedades del objeto a través de la asignación de campos que se creará.


El primer programa de Scala

Programación interactiva

programación interactiva no necesita crear un archivo de secuencia de comandos, puede llamar al siguiente 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> 

forma de guión

También podemos crear un archivo HelloWorld.scala para ejecutar código, el código HelloWorld.scala de la siguiente manera:

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

A continuación, utilizamos el comando scalac para su compilación:

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

Después de compilar, podemos ver los directorios creados bajo el expediente HelloWorld.class que pueden ejecutarse en la máquina virtual Java (JVM) en.

Después de compilar, podemos usar el siguiente comando para ejecutar el programa:

$ scala HelloWorld
Hello, world!
ejemplos en línea >>

La sintaxis básica

Scala sintaxis básica, tenga en cuenta lo siguiente:

  • Entre mayúsculas y minúsculas - Scala entre mayúsculas y minúsculas, lo que significa el logotipo Hola hola y tienen diferentes significados en Scala.

  • Nombre de clase - por todo el nombre de la clase primera letra debe ser mayúscula.

    Si es necesario utilizar unas palabras para constituir un nombre de clase, la primera letra de cada palabra en mayúscula.

    Ejemplo: MyFirstScalaClass clase

  • Nombre del método - la primera letra de los nombres de todos los métodos minúsculas.

    Si se usan varias palabras para constituir el nombre del método, la primera letra de cada palabra en mayúsculas.

    Ejemplo: myMethodName def ()

  • Nombre del archivo - el nombre del archivo de programa debe coincidir exactamente con el nombre del objeto.

    Al guardar un archivo, se debe guardar el nombre de objeto a utilizar (recuerda Scala entre mayúsculas y minúsculas), y añadir la extensión de archivo ".scala". (Si el nombre del archivo y objetos nombres no coinciden, el programa no compilará).

    Ejemplo: Digamos que "Hola Mundo" es el nombre del objeto. A continuación, el archivo debe ser guardado como 'HelloWorld.scala "

  • def main (args: Array [cadena ]) - Scala programa del método main () comienza el procesamiento, que es una parte obligatoria de cada programa Scala entrada del programa.


identificadores

Scala puede utilizar dos formas de identificadores digitales, caracteres y símbolos.

uso alfanumérica comenzar con una letra o un guión puede ser seguido por la letra o número, un símbolo "$" en la Scala también es visto como letras. Sin embargo, usando el identificador, la aplicación a "$" al principio del identificador está reservado compilador Scala debe evitar el uso de la "$" Iniciar identificador para evitar el conflicto.

Scala y Java convención de nombres usando un camello de nombres similares, la primera minúscula carácter, como toString. El primer carácter nombres de clase o en mayúsculas. Además se debe evitar con el fin de subrayar el final del identificador para evitar colisiones. identificador del símbolo comprende uno o más símbolos, tales como +,:?, etc., tales como:

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

Se utilizará el identificador escapado cuando la implementación interna Scala, tales como: -> Uso de colon $ $ $ minus mayor para representar el símbolo. Así que si usted necesita tener acceso a código Java: -> método, es necesario utilizar el nombre interno de colon $ $ $ menos mayor de Scala.

identificador alfanumérico mezclados en el identificador más tarde seguido de uno o más símbolos, como la unary_ Scala + nombre + método para el tiempo de implementación interna. identificador literal de la cadena "se define, por example` x`` yield`.

Se puede utilizar cualquier identificador válido en Scala entre ", Scala será interpretado como un identificador de Scala, un uso típico de la rosca del método de rendimiento, en la Scala no se puede utilizar Thread.yield () es debido a que el rendimiento de Scala palabras clave, debe utilizar Thread.`yield` () para utilizar este método.


palabras clave Scala

La siguiente tabla muestra las palabras clave Scala reservada, no podemos usar las siguientes palabras clave como variables:

abstracto caso captura clase
def hacer otro se extiende
falso final finalmente para
forsome si implícito importación
perezoso partido nuevo nulo
objeto anular paquete privado
protegido retorno sellado súper
este tirar rasgo probar
verdadero tipo val var
mientras con rendimiento
- : = =>
<- <: <% >:
# @

comentario Scala

Scala es similar a muchos Java soporta los comentarios de una sola línea. comentarios multilínea se pueden anidar, sino que deben ser correctamente anidados, un comentario que comienza con el símbolo correspondiente a terminar símbolo. compilador NOTA Scala será ignorado, los ejemplos son los siguientes:

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

Las líneas en blanco y espacios

Sólo una línea con un espacio o comentarios, Scala pensará que es una línea en blanco, la ignorará. Las marcas pueden ser espacios o comentario para dividir.


salto de línea

Scala es un lenguaje orientado a la línea, la declaración con un punto y coma (;) o saltos de línea finales. programa de Scala, el punto y coma al final de la instrucción suele ser opcional. Si usted está dispuesto a entrar en uno, pero si sólo hay una línea en el estado o no escribir. Por otro lado, si usted escribe varias instrucciones en una fila por lo que es necesario el punto y coma. Por ejemplo

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

paquete de Scala

Los paquetes personalizados

Scala se define utilizando el paquete de paquete de palabras clave, en el código de Scala para definir un paquete de dos maneras:

El primer método, y Java, como en la cabecera del archivo define el nombre del paquete, este método siguen todos los códigos se colocan en el periódico. Por ejemplo:

package com.w3big
class HelloWorld

El segundo método es algo similar a C #, tales como:

package com.w3big {
  class HelloWorld 
}

El segundo método, se pueden definir varios paquetes en un archivo.

cita

Scala utilizando el paquete de referencia import.

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

declaraciones de importación pueden aparecer en cualquier lugar, no sólo en la parte superior del archivo. resultados de la importación de que se extiende hasta el final del bloque de instrucciones. Esto puede reducir significativamente la probabilidad de conflictos de nombres.

Si desea introducir un paquete de varios miembros, puede utilizar el selector (Selector):

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

Nota: Por defecto, Scala java.lang._ siempre introducido, scala._ y Predef._, Aquí también se puede explicar por qué la cabeza scala del paquete, cuando se utiliza el Scala se omiten.