Diretório de artigos
- 1. Declaração de variável
- 2. Tipo de dados
1. Declaração de variável
(1) Breve descrição
As variáveis são declaradas em Scala usando as palavras-chave val e var. val é semelhante a uma variável final em Java, ou seja, uma constante, que não pode ser modificada depois de inicializada; var é semelhante a uma variável não final em Java, que pode ser atribuída e modificada várias vezes.
val - valor - valor
var - variável - variável
(2) Use val para declarar variáveis
1. Método de declaração
val <nome da variável>[: tipo de dados] = valor da variável É
mais flexível definir variáveis, você pode especificar o tipo de dados ou não pode especificar o tipo de dados, e Scala pode julgar o tipo de dados por si só de acordo com o atribuído value.Na declaração de variáveis,
Scala tem Java e Recursos de Python. Java é uma linguagem estática, declarando variáveis deve especificar o tipo de dados, Python é uma linguagem dinâmica, declarando variáveis não precisa especificar o tipo de dados.
2. Demonstração de caso
(3) Use var para declarar variáveis
1. Método de declaração
var <nome da variável>[:tipo de dados] = valor da variável
2. Demonstração de caso
(4) Instrução de entrada de nova linha (linha contínua)
Se você deseja inserir uma string de várias linhas, é impossível usar aspas duplas, você deve usar aspas triplas
(5) Declarar várias variáveis ao mesmo tempo
Scala não pode atribuir valores diferentes para várias variáveis ao mesmo tempo
(6) Declaração de variável resumida
1. Variáveis devem ser inicializadas
2. Defina variáveis sem especificar o tipo de dados
3. Incentive o uso prioritário de val (constante)
Scala incentiva o uso de val (constante) em vez de var, a menos que seja realmente necessário modificá-lo.
4. A instrução não precisa escrever o terminador
2. Tipo de dados
(1) Hierarquia de tipo Scala
1. Qualquer tipo
Any é a raiz da hierarquia de classes do Scala, também conhecida como superclasse ou classe de nível superior. Cada classe no ambiente de execução Scala herda desta classe, direta ou indiretamente. Alguns métodos comuns são definidos nesta classe, como equals(), hashCode() e toString(). Any tem duas subclasses diretas: AnyVal e AnyRef
2. Tipo AnyVal
AnyVal representa um tipo de valor e há 9 tipos de valor predefinidos, que são não vazios Double, Float, Long, Int, Short, Byte, Char, Unit e Boolean. Unit é um tipo de valor que não contém nenhuma informação, equivalente a void na linguagem Java, e é usado como o tipo de resultado de um método que não retorna nenhum resultado. Unit tem apenas um valor de instância, escrito como ().
3. Tipo AnyRef
AnyRef representa um tipo de referência. Todos os tipos sem valor são definidos como tipos de referência. Cada tipo definido pelo usuário em Scala é um subtipo de AnyRef. AnyRef corresponde a java.lang.Object em Java.
4. Demonstração de caso
Defina uma lista de variáveis cujo tipo seja List[Any]. A lista inclui strings, inteiros, caracteres, valores booleanos e funções. Como esses elementos pertencem à instância do objeto Any, eles podem ser adicionados à lista.
Através do loop for aprimorado para percorrer os elementos da lista e exibir seus tipos de dados
scala> list.foreach(x => println(x + ": " x.getClass.getSimpleName))
love:String
100:Integer
66.6:Double
c:Charater
true: Bootlean
<function0>: anonfun$1
Obtenha a sublista dos três primeiros elementos da lista
scala> list.reverse
res6:List[Any] = List(<function0>, true, c, 66.6, 100, love)
scala>List
res7: List[Any] = List(love, 100, 66.6, c, true, <function0>)
(2) Tipos de dados básicos
1. Tabela de tipo básico
2. Breve descrição
(1) String está no pacote java.lang, e outros tipos estão no pacote scala. Como o Scala importará automaticamente os pacotes java.lang e scala, esses tipos podem ser usados diretamente no programa.
(2) Na verdade, não existe um tipo básico real em scala (como o tipo básico de Java), e os dez tipos básicos acima são todos classes.
(3) Em Scala, a diferença entre o tipo de dados básico e outras classes é que seus objetos são incorporados na forma de quantidade direta, que é basicamente a mesma que em Java.
(4) Uso de """ do tipo String: a sintaxe de """...""" pode ser usada no literal String para incluir diretamente uma parte do conteúdo, de modo que o conteúdo possa conter qualquer caractere sem escape Neste momento, você pode usar a barra vertical | para controlar o formato de indentação antes de cada linha e chamar stripMargin na string para alinhar a string em |.Use .stripMargin
e a barra vertical "|" para ajustar o formato de saída da string
3. Tipos básicos de wrappers avançados
Os métodos fornecidos pelos nove tipos básicos são relativamente limitados. Para expandir suas funções, Scala fornece nove wrappers ricos correspondentes, que na verdade são nove classes. Os literais dessas nove classes podem ser convertidos automaticamente em seus wrappers ricos correspondentes quando necessário. Classes wrapper para chamar métodos extras fornecidos por classes wrapper avançadas.
(3) Conversão de tipo de dados
1. Conversão de tipos de valor
Os tipos de valor em Scala podem ser convertidos conforme mostrado na figura abaixo, e a conversão é unidirecional.
Converta Longo para Float. Observe que alguma precisão será perdida neste caso.
Se você converter Float para Long, um erro será relatado .
Não pode ser convertido automaticamente do tipo Float para o tipo Long, mas pode ser implementado chamando um método
2. Conversão de tipos de referência
Além disso, Scala pode converter tipos de referência em seus subtipos.
Nothing é uma subclasse de todos os tipos, semelhante à interface de identificação em Java (como serializable, que é usada para indicar que a classe pode ser serializada). Por exemplo, se um método lança uma exceção, o tipo de valor de retorno da exceção é Nothing (embora não volte).
Null é uma subclasse de todos os tipos de referência (AnyRef), portanto Null pode ser atribuído a todos os tipos de referência, mas não a tipos de valor.Essa é a mesma semântica de Java. Nulo tem um valor de coluna única único de nulo.