Latest web development tutorials

Scala gramática básica

Se você é um programador Java antes, e aprender os conceitos básicos da linguagem Java, de modo que você pode rapidamente aprender a gramática básica Scala.

Scala e Java a maior diferença é: Scala ponto e vírgula no final da instrução; é opcional.

Podemos pensar em programa Scala é uma coleção de objetos por cada chamada de método para implementar mensagens. Em seguida, vêm a compreender, a classe, o conceito de objetos, métodos, variáveis ​​de instância:

  • Objetos - objetos têm propriedades e comportamentos.Por exemplo: Um cão-como atributos: cor, nome, comportamento: chamada, correr, comer e assim por diante. Objeto é uma instância de uma classe.

  • Class - classe é um objeto abstrato, e o objeto é uma instância específica de uma classe.

  • Método - o método descrito no acto de base, uma classe pode conter vários métodos.

  • Fields - Cada objeto tem seu próprio conjunto de variáveis de instância, ou seja, campos.Propriedades do objeto através da atribuição de campo a ser criado.


O primeiro programa Scala

Programação interactiva

programação interativa não precisa criar um arquivo de script, você pode chamar o seguinte 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 roteiro

Nós também pode criar um arquivo HelloWorld.scala para executar código, código HelloWorld.scala da seguinte forma:

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

Em seguida, usamos o comando scalac para compilá-lo:

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

Após a compilação, podemos ver os diretórios criados sob arquivo HelloWorld.class que podem rodar em Java Virtual Machine (JVM) diante.

Após a compilação, podemos usar o seguinte comando para executar o programa:

$ scala HelloWorld
Hello, world!
exemplos online >>

A sintaxe básica

Scala sintaxe básica, observe o seguinte:

  • sensível ao caso - Scala é sensível a maiúsculas, o que significa que o logo Olá, olá e têm significados diferentes em Scala.

  • nome da classe - para todo o nome da classe primeira letra deve ser maiúscula.

    Se você precisa usar algumas palavras para constituir um nome de classe, a primeira letra de cada palavra em maiúsculas.

    Exemplo: MyFirstScalaClass classe

  • nome do método - a primeira letra de todos os métodos de nomes em minúsculas.

    Se várias palavras são usados ​​para constituir o nome do método, a primeira letra de cada palavra deve ser maiúscula.

    Exemplo: myMethodName def ()

  • O nome do arquivo - o nome do arquivo de programa deve corresponder exatamente ao nome do objeto.

    Quando você salva um arquivo, ele deve salvar o nome do objeto a ser usado (lembre-se Scala é case-sensitive), e acrescentar ".scala" extensão de arquivo. (Se o nome do arquivo e objeto nomes não coincidirem, o programa não será compilado).

    Exemplo: Vamos dizer que "HelloWorld" é o nome do objeto. Em seguida, o arquivo deve ser salvo como 'HelloWorld.scala "

  • def principais (args: Array [corda ]) - Scala programa a partir do método main () inicia o processamento, que é uma parte obrigatória de cada programa Scala entrada do programa.


identificadores

Scala pode usar duas formas de identificadores, personagens digitais e símbolos.

uso alfanumérico começar com uma letra ou sublinhado pode ser seguido pela letra ou número, um símbolo "$" em Scala também é visto como letras. compilador Scala No entanto, usando o identificador, o aplicativo "$" no início do identificador é reservado devem evitar usar o identificador "$" começar a evitar conflito.

Scala e Java convenção de nomeação usando um camelo de nomenclatura semelhante, o primeiro minúsculas caracteres, como toString. O primeiro caractere nomes de classe ou maiúsculas. Além disso, deve ser evitado, de modo a sublinhar o final do identificador para evitar colisões. Símbolo identificador compreende um ou mais símbolos, tais como +,:?, etc, tais como:

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

Ele vai usar o identificador de escape quando a implementação interna Scala, tais como: -> Usar $ cólon $ menos US $ maior para representar o símbolo. Então, se você precisar acessar o código Java: -> método, você precisa usar interna nome $ cólon $ menos US $ maior do Scala.

identificador alfanumérico mistos a partir do identificador depois seguido por um ou mais símbolos, tais como o nome unary_ Scala + + método para o tempo de aplicação interna. identificador literal para a cadeia "é definido, por example` x`` yield`.

Você pode usar qualquer identificador válido Scala no meio ", Scala será interpretado como um identificador Scala, um uso típico para o segmento do método do rendimento, no Scala você não pode usar Thread.yield () é porque o rendimento do Scala palavras-chave, você deve usar Thread.`yield` () para usar este método.


palavras-chave Scala

A tabela a seguir lista as palavras-chave scala reservados, não podemos usar as seguintes palavras-chave como variáveis:

abstrato caso captura classe
def fazer mais estende-se
falso final finalmente para
forsome se implícito importação
preguiçoso fósforo novo nulo
objeto override pacote privado
protegido retorno selado super
esta jogar traço tentar
verdadeiro tipo val var
enquanto com rendimento
- : = =>
<- <: <% >:
# @

comentário Scala

Scala é semelhante a muitos Java suporta comentários de linha única. comentários de várias linhas podem ser aninhadas, mas deve ser devidamente aninhados, um comentário que começa com um símbolo correspondente a acabar símbolo. NOTA compilador Scala irá ser ignorado, os exemplos são os seguintes:

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

As linhas em branco e espaços

Apenas uma linha com um espaço ou comentários, Scala vai pensar que é uma linha em branco, ele irá ignorá-lo. Marcas podem ser espaços ou comentários para dividir.


nova linha

Scala é uma linguagem orientada a linha, a declaração com um ponto e vírgula (;) de fim de linha ou quebras. programa Scala, o ponto e vírgula no final da instrução é geralmente opcional. Se você está disposto a entrar em um, mas se houver apenas uma linha na declaração ou não escrever. Por outro lado, se você escrever várias instruções em uma linha por isso é necessário o ponto e vírgula. Por exemplo

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

pacote Scala

pacotes personalizados

Scala é definido usando o pacote pacote de palavra-chave, em código Scala para definir um pacote de duas maneiras:

O primeiro método, e Java, como no cabeçalho do ficheiro define o nome do pacote, este método siga todos os códigos são colocados no jornal. Por exemplo:

package com.w3big
class HelloWorld

O segundo método é um tanto semelhante a C #, tais como:

package com.w3big {
  class HelloWorld 
}

O segundo método, é possível definir vários pacotes em um arquivo.

citação

Scala usando importação pacote de referência de palavra-chave.

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

declarações de importação pode aparecer em qualquer lugar, não apenas no topo do arquivo. resultados de importação de estendendo-se até o fim do bloco de declaração. Isso pode reduzir significativamente a probabilidade de conflitos de nome.

Se você quer introduzir um pacote de vários membros, você pode usar o seletor (Picker):

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

Nota: Por padrão, Scala java.lang._ sempre introduzido, scala._ e Predef._, Aqui você também pode explicar por que a cabeça scala do pacote, ao utilizar o scala são omitidos.