English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Se você já foi um programador Java e conhece as bases do linguagem, você pode aprender rapidamente a sintaxe básica do Scala.
A maior diferença entre Scala e Java é que o ponto e vírgula ; no final das instruções Scala é opcional.
Podemos considerar que os programas Scala são conjuntos de objetos, que realizam a comunicação por meio de chamadas de métodos. Vamos entender os conceitos de classe, objeto, método e variável de exemplo a seguir:
Objeto - O objeto tem propriedades e comportamentos. Por exemplo: as propriedades físicas de um cachorro incluem: cor, nome; os comportamentos incluem: latir, correr, comer, etc. O objeto é um exemplo da classe.
Classe - A classe é a abstração do objeto, e o objeto é a exemplo específico da classe.
Método - A descrição básica do comportamento dos métodos, uma classe pode conter vários métodos.
Campo - Cada objeto tem uma coleção única de variáveis de exemplo, ou seja, campos. As propriedades do objeto são criadas atribuindo valores aos campos.
Programação interativa não requer a criação de arquivos de script, e pode ser chamada usando o seguinte comando:
$ scala Bem-vindo à versão Scala 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>
Também podemos executar o código criando um arquivo HelloWorld.scala, cujo código é o seguinte:
object HelloWorld { /* Este é meu primeiro programa Scala * O seguinte programa imprimirá 'Hello World!'. */ def main(args: Array[String]) { println("Hello, world!") // Saída Hello World } }
A seguir, usaremos o comando scalac para compilar:
$ scalac HelloWorld.scala $ ls HelloWorld$.class HelloWorld.scala HelloWorld.class
Após a compilação, podemos ver que foi gerado o arquivo HelloWorld.class no diretório, que pode ser executado no Java Virtual Machine (JVM).
Após a compilação, podemos usar o seguinte comando para executar o programa:
$ scala HelloWorld Hello, world!
A gramática básica do Scala deve ser levada em consideração nos seguintes pontos:
Diferenciação de maiúsculas e minúsculas - O Scala é sensível a maiúsculas e minúsculas, o que significa que Hello e hello terão significados diferentes no Scala.
Nome da classe - Para todos os nomes das classes, a primeira letra deve ser maiúscula.
Se precisar usar várias palavras para formar o nome de uma classe, a primeira letra de cada palavra deve ser maiúscula.
Exemplo:class MyFirstScalaClass
Nome do método - O primeiro caractere de todos os nomes dos métodos deve ser minúsculo.
Se várias palavras forem usadas para constituir o nome do método, a primeira letra de cada palavra deve ser maiúscula.
Exemplo:def myMethodName()
Nome do arquivo do programa - O nome do arquivo do programa deve coincidir completamente com o nome do objeto (não é mais necessário na nova versão, mas é recomendado manter esse hábito).
Ao salvar o arquivo, deve-se salvar o nome do objeto que ele usa (lembrar que Scala é case-sensitive), e adicionar ".scala" como extensão do arquivo. (Se o nome do arquivo e o nome do objeto não coincidirem, o programa não compilará).
Exemplo: Suponha que "HelloWorld" seja o nome do objeto. Então, o arquivo deve ser salvo como 'HelloWorld.scala'
def main(args: Array[String]) - O programa Scala começa a ser processado pelo método main(), que é a parte de entrada obrigatória de qualquer programa Scala.
O Scala pode usar dois tipos de identificadores, o identificador numérico e o identificador de símbolo.
O identificador numérico começa com uma letra ou sublinhado, seguido por letras ou números, o símbolo "$" também é considerado uma letra no Scala. No entanto, os identificadores que começam com "$" são identificadores reservados gerados pelo compilador Scala, os aplicativos devem evitar usar identificadores que começam com "$" para evitar conflitos.
As regras de nomeação do Scala adotam um estilo camel case semelhante ao Java, com a primeira letra em minúscula, por exemplo toString. A primeira letra do nome da classe ainda é maiúscula. Além disso, também deve evitar usar identificadores que terminam com um traço para evitar conflitos. O identificador de símbolo contém um ou mais símbolos, como+,:,? 等, por exemplo:
+ ++ ::: < ?> :->
A implementação interna do Scala usará identificadores escapados, por exemplo:-Para representar esse símbolo, use $colon$minus$greater. Portanto, se precisar acessar em código Java:-Método, você precisa usar o nome interno $colon$minus$greater do Scala.
O identificador misto é composto por um identificador numérico seguido de um ou mais símbolos, por exemplo unary_+ Para Scala,+O nome interno da implementação do método. O identificador literal é uma string definida por "", por exemplo `x` `yield`.
Você pode usar qualquer identificador válido de Scala entre "", Scala os interpreta como um identificador de Scala. Uma utilização típica é o método yield da Thread, em Scala você não pode usar Thread.yield() porque yield é uma palavra-chave de Scala, você deve usar Thread.`yield`() para usar esse método.
A tabela a seguir lista as palavras-chave reservadas do Scala, que não podem ser usadas como nomes de variáveis:
abstract | case | catch | class |
def | do | else | extends |
false | final | finally | for |
forSome | if | implicit | import |
lazy | match | new | null |
object | override | package | private |
protected | return | sealed | super |
this | throw | trait | try |
true | type | val | var |
while | with | yield | |
- | : | = | => |
<- | <: | <% | >: |
# | @ |
O Scala, como o Java, suporta comentários em linha e em múltiplas linhas. Os comentários em múltiplas linhas podem ser aninhados, mas devem ser aninhados corretamente, com um símbolo de início de comentário correspondendo a um símbolo de fim de comentário. Os comentários são ignorados durante a compilação Scala, como no exemplo a seguir:
object HelloWorld { /* Este é um programa Scala * Este é um comentário em linha * Aqui está um exemplo de comentário em múltiplas linhas */ def main(args: Array[String]) { // Saída Hello World // Este é um comentário em linha println("Hello, world!") } }
Se uma linha contiver apenas espaços ou comentários, o Scala considera-a uma linha em branco e a ignora. Os marcadores podem ser separados por espaços ou comentários.
O Scala é uma linguagem orientada a linha, onde as declarações podem ser encerradas com um ponto-e-vírgula (;) ou com um caractere de nova linha. No programa Scala, o ponto-e-vírgula no final da declaração é opcional. Se você quiser, pode inserir um, mas se apenas Há uma declaração que pode não ser escrita. Por outro lado, se várias declarações forem escritas em uma linha, o ponto-e-vírgula é necessário. Por exemplo
val s = "基础教程网"; println(s)
O Scala usa a palavra-chave 'package' para definir pacotes, e há duas maneiras de definir códigos em um pacote no Scala:
O primeiro método é semelhante ao Java, onde o nome do pacote é definido no cabeçalho do arquivo, e todos os códigos subsequentes são colocados dentro desse pacote. Por exemplo:
package com.w3codebox class HelloWorld
A segunda maneira é semelhante ao C#:
package com.w3codebox { class HelloWorld }
Segunda maneira, você pode definir vários pacotes em um único arquivo.
O Scala usa a palavra-chave import para referenciar pacotes.
import java.awt.Color // Importar Color import java.awt._ // Importar todos os membros do pacote def handler(evt: event.ActionEvent) { // java.awt.event.ActionEvent ... // Porque foi importado java.awt, a parte anterior pode ser omitida }
As instruções import podem aparecer em qualquer lugar, não apenas no topo do arquivo. O efeito do import se estende até o final do bloco de instruções. Isso pode reduzir significativamente a probabilidade de conflitos de nomes.
Se quiser importar alguns membros do pacote, você pode usar o selector (seletor):
import java.awt.{Color, Font} // Renomear Membro import java.util.{HashMap => JavaHashMap} // Membro Oculto import java.util.{HashMap => _, _} // Todos os membros do pacote util foram importados, mas o HashMap foi oculto
Atenção:Por padrão, o Scala sempre importa java.lang._, scala._ e Predef._, isso também explica por que os pacotes começando com scala. são omitidos no uso.