当前位置:网站首页>Scala Foundation (2): variables et types de données
Scala Foundation (2): variables et types de données
2022-06-26 16:23:00 【Je ne peux pas penser à Xiao Zhao.】
Bonjour tout le monde,Je suis Bai Si Wei Xiao Zhao.
Temps de création:2022 Année 6 Mois 24 Jour
Page d'accueil du blog: Cliquez ici pour accéder à la page d'accueil du blog
—— Les travailleurs migrants de la nouvelle ère
—— Une autre logique de pensée pour voir le monde
Aujourd'hui c'est rejoindreCSDNDe1210Oh, mon Dieu..J'ai trouvé ça utile.、Commentaires、️Collection
Catalogue des articles
Un.、Variables et constantes
Comment définir?
var Nom de la variable [: Type de variable] = Valeur initiale
val Nom constant [: Type constant] = Valeur initiale
Prends une châtaigne.:
var a: Int = 10;
val b: Int = 22;
// Les types de variables peuvent être omis
var a = 10;
val b = 22;
Parce queScalaEst un langage de programmation fonctionnel,Donc là où vous pouvez utiliser des constantes, vous n'avez pas besoin de variables.
Conclusions importantes:
- Lors de la Déclaration d'une variable,Le type peut être omis,Le compilateur déduit automatiquement,C'est - à - dire la dérivation de type.
- Type statique, Le type ne peut pas être modifié après avoir été donné ou déduit .
- Lorsque les variables et les constantes sont déclarées ,Il doit y avoir une valeur initiale.
- var Variable modifiée ,val Constante immuable modifiée .
- Constante de type de référence, Impossible de modifier l'objet pointé par la constante , Les champs de l'objet peuvent être modifiés .
- Non.; Comme fin de déclaration ,scala Le compilateur reconnaît automatiquement la fin de l'instruction .
Spécification du nom de l'identificateur
- Commencez par une lettre ou un soulignement,Suivi d'une lettre、Nombre、Soulignement,EtJavaSyntaxe identique
- Scala Peut commencer par un opérateur ,Et ne contient que des opérateurs(+ - * / # !Attendez.)
- Quelque chose de spécial:scala Toute chaîne incluse dans des guillemets inversés ,Même si Scala Mots clés(39 - Oui.)C'est possible..
Prends une châtaigne.:
val hello = ""
var Helo = ""
var _abc=123
var -+/% = "hello"
var `if` = 123
Scala Ensemble de mots clés dans :
• package, import, class, object, trait, extends, with, type, for
• private, protected, abstract, sealed, final, implicit, lazy, override
• try, catch, finally, throw
• if, else, match, case, do, while, for, return, yield
• def, val, var
• this, super
• new
• true, false, null
AvecJavaLa différence entre:
object trait with implicit match yield def val var
String
Syntaxe de base
- Les mots clés sont:
String - Adoption
+Connexion n° *Utilisé pour copier une chaîne plusieurs foisprintfChaîne de sortie,Adoption%Transmission de la valeur- Chaîne d'interpolation:
s"${Nom de la variable}“,PréfixesFormater la chaîne du modèle,fNombre de points flottants pour le modèle de format ,%Le contenu formaté suit - Produit brut:
raw"Contenu de sortie${Nom de la variable}", Le résultat de la sortie est la sortie telle quelle - Déclarations de sortie:
print(Contenu de sortie)、println()、printf() - Trois guillemets pour la chaîne,Conserver la sortie formatée originale de la chaîne multiligne.
"""......."""
Prends une châtaigne.:
val name: String = "lisi" + " ";
val age: Int = 12
println(name * 3)
printf("%dUn an%sJe mange.", age, name)
// Formater la chaîne du modèle
println(s"${
age}Un an${
name}Je mange.")
val num: Double = 2.26054
println(s"this number is ${
num}")
println(f"this num is ${
num}%2.2f")
println(raw"this num is ${
num}%2.2f")
val sql =
s""" |select * | from student | where name = ${
name} | and | age > ${
age} |""".stripMargin
println(sql)
Entrée du clavier
Syntaxe de base
import scala.io.StdIn,StdInIn IO Sous le sac.StdIn.readLine()Lire la chaîneStdIn.readShort()StdIn.readDouble()- …
Prends une châtaigne.:
object Test04_StdInt {
def main(args: Array[String]): Unit = {
println("Veuillez saisir votre nom:")
val name = StdIn.readLine()
println("Veuillez entrer votre âge:")
val age = StdIn.readInt()
println(s"Bienvenue${
age}De${
name},Système photocopique!!!")
}
}
Entrées et sorties de fichiers:
import scala.io.Source
import java.io.PrintWriter
import java.io.File
object Test05_FileIO {
def main(args: Array[String]): Unit = {
// 1.Lire les données du fichier
Source.fromFile("src/main/resources/test.txt").foreach(print)
// 2.Écrire des données dans un fichier
val writer = new PrintWriter(new File("src/main/resources/put.txt"))
writer.write("hello scala from java")
writer.close()
}
}
2.、Type de données
JavaType de données dans
- Type de base:
char、byte、short、int、long、float、double、boolean - Classe d'emballage correspondante:
Character、Byte、Short、Integer、Long、Float、Double、Boolean - Parce queJavaIl y a des types de base, Et les types de base ne sont pas vraiment des objets de sens ,Java Pas purement orienté objet .
ScalaType de données dans
- ScalaToutes les données sont des objets,
AnyEst le parent de toutes les données . AnyIl y a deux sous - classes correspondantes , L'un est un type numérique (AnyVal), L'autre est le type de référence (AnyRef)StringOpsC'est vrai.JavaDansStringAmélioration.UnitPourScalaUn type de données dans,Correspondant àJavaDansvoid,La méthode de représentation n'a pas de valeur de retour, Un seul objet Singleton , Sortie en chaîne(),EtvoidEst un mot clé- Scala Passage du type de données de faible précision au type de données de haute précision par défaut (Conversion automatique \ Conversion implicite)
NullEst un type,Seulement C'est vrai. On dirait. - Oui.null.C'est tous les types de références(AnyRef)Sous - classe.Nothing,Est une sous - classe de tous les types de données, Utilisé lorsqu'une fonction n'a pas de valeur de retour explicite ,Parce que de cette façon, nous pouvons lancer la valeur de retour,Renvoie à n'importe quelle variable ou fonction.

Type entier
Byte[1Octets]8 Bit signé complément entier.L'intervalle de valeurs est-128À127Short[2Octets]16 Bit signé complément entier.L'intervalle de valeurs est-32768À32767Int[4Octets]32 Bit signé complément entier.L'intervalle de valeurs est-2147483648À2147483647Long[8Octets ]64 Bit signé complément entier.L'intervalle de valeurs est-9223372036854775808À9223372036854775807= 2 De(64-1)Secondaire-1- Chaque type d'entier a une plage de représentation fixe et une longueur de champ
- ScalaLe type de données par défaut est
Int, La forme longue doit être ajoutéelOuL - Conversion de haute précision en basse précision :
val b3: Byte = (1 + 10).toByte
Prends une châtaigne.:
val al: Byte = 127
val a2: Byte = -128
val a3 = 12
val b1: Byte = 10
val b2: Byte = (10 + 20)
println(b2)
val b3: Byte = (b1 + 10).toByte
Type de point flottant
Float[4] 32 Bits, IEEE 754 Nombre standard de points flottants de précision uniqueDouble[8] 64 Bits IEEE 754 Nombre standard de points flottants de double précision- Par défaut
DoubleType
Prends une châtaigne.:
val f1: Float = 1.232f
val d2 = 12.987
Type de caractère
- Le type de caractère est
Char,Représente un seul caractère - Les constantes de caractère sont en guillemets simples ’ ’ Un seul caractère inclus.
- Caractère d'évasion:
\t 、\n、\\、\”
Type booléen
- Booolean Seules les valeurs sont autorisées pour les données de type
trueEtfalse - Prend un octet
Prends une châtaigne.:
val isTrue = true
val isFalse: Boolean = false
println(isTrue)
Type vide
Unit:Indique aucune valeur Il n'y a qu'une seule valeur d'instance,Écrit comme suit:()Null: Null Le type n'a qu'une seule valeur d'instancenullNothing: Assurez - vous qu'il n'y a pas de valeur de retour normale ,Ça marche Nothing Pour spécifier le type de retour
Prends une châtaigne.:
def m2(n: Int): Int = {
if (n == 0)
throw new NullPointerException
else
return n
}
Conversion de type
- Principe de levage automatique:Lorsqu'il existe plusieurs types d'opérations de mélange de données,Le système convertit d'abord automatiquement toutes les données en
Le type de données avec une grande précision ,Puis on calcule. - Une erreur est signalée lors du transfert de données de haute précision .
Byte,ShortEtCharNe se convertissent pas automatiquement entre eux.Byte,Short,CharLes trois peuvent calculer,Convertir d'abord enIntType.
Prends une châtaigne.:
val a1: Byte = 10;
val b1: Long = 20L;
val result1: Long = a1 + b1
println(result1)
Forcer la conversion de type
- Forcer la conversion de type:
toByte、toInt、… 'aaa'.toInt 2.2.toInt- Perte de précision
- Valeurs etStringConversion entre:
Valeur du type de base+" "、s1.toInt、s1.toFloat、s1.toDouble、s1.toByte
Prends une châtaigne.:
val n1: Int = 2.5.toInt
println(n1)
val n2: Int = (2.6 + 3.7).toInt
println(n2)
// Valeur convertie enString
val a: Int = 27
val s: String = a + " "
println(s)
//StringConvertir en valeur numérique
val m: Int = "12".toInt
val f: Float = "12.4".toFloat
val f2: Int = "12.6".toFloat.toInt
println(f2)
C'est la fin de cet article. ,J'espère que ça t'aidera.!!!
边栏推荐
- JS教程之 使用 Electron.JS 构建原生桌面应用程序乒乓游戏
- Hyperf框架使用阿里云OSS上传失败
- 无需人工先验!港大&同济&LunarAI&旷视提出基于语义分组的自监督视觉表征学习,显著提升目标检测、实例分割和语义分割任务!...
- 补齐短板-开源IM项目OpenIM关于初始化/登录/好友接口文档介绍
- 01 backpack DP
- Structure the graduation project of actual combat camp
- Arduino UNO + DS1302简单获取时间并串口打印
- Kept to implement redis autofailover (redisha)
- 了解下常见的函数式接口
- Beijing University and Tencent jointly build angel4.0, and the self-developed in-depth learning framework "River map" is integrated into the ecology
猜你喜欢

Learn about common functional interfaces

I regard it as a dry product with a monthly income of more than 30000 yuan for sidelines and more than 10000 yuan for novices!

补齐短板-开源IM项目OpenIM关于初始化/登录/好友接口文档介绍

stm32h7b0替代h750程序导致单片机挂掉无法烧录程序问题

【力扣刷题】单调栈:84. 柱状图中最大的矩形

Lifeifei's team applied vit to the robot, increased the maximum speed of planning reasoning by 512 times, and also cued hekaiming's Mae

Transformation of zero knowledge QAP problem
![[graduation season] a word for graduates: the sky is high enough for birds to fly, and the sea is wide enough for fish to leap](/img/b6/21e51fa7f79d4a4b950f061703f0fb.png)
[graduation season] a word for graduates: the sky is high enough for birds to fly, and the sea is wide enough for fish to leap

【蓝桥杯集训100题】scratch辨别质数合数 蓝桥杯scratch比赛专项预测编程题 集训模拟练习题第15题

Cuckoo filter for Chang'an chain transaction
随机推荐
Handwritten numeral recognition, run your own picture with the saved model
Tsinghua's "magic potion" is published in nature: reversing stem cell differentiation, and the achievements of the Nobel Prize go further. Netizen: life can be created without sperm and eggs
JS教程之Electron.js设计强大的多平台桌面应用程序的好工具
[graduation season] a word for graduates: the sky is high enough for birds to fly, and the sea is wide enough for fish to leap
# 补齐短板-开源IM项目OpenIM关于初始化/登录/好友接口文档介绍
【力扣刷题】11.盛最多水的容器//42.接雨水
R language plotly visualization: Violin graph, multi category variable violin graph, grouped violin graph, split grouped violin graph, two groups of data in each violin graph, each group accounts for
若依如何实现接口限流?
Hyperf框架使用阿里云OSS上传失败
Notes on key review of software engineering at the end of the term
请指教同花顺软件究竟是什么?网上开户是否安全么?
How to implement interface current limiting?
Kept to implement redis autofailover (redisha)
2 三种建模方式
TCP拥塞控制详解 | 1. 概述
Big talk Domain Driven Design -- presentation layer and others
用Attention和微调BERT进行自然语言推断-PyTorch
【毕业季】致毕业生的一句话:天高任鸟飞,海阔凭鱼跃
Data analysis - numpy quick start
Ten thousand words! In depth analysis of the development trend of multi-party data collaborative application and privacy computing under the data security law