当前位置:网站首页>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.!!!
边栏推荐
- Net based on girdview control to delete and edit row data
- R language generalized linear model function GLM, GLM function to build logistic regression model, analyze whether the model is over discrete, and use the ratio of residual deviation and residual degr
- 无需人工先验!港大&同济&LunarAI&旷视提出基于语义分组的自监督视觉表征学习,显著提升目标检测、实例分割和语义分割任务!...
- 5 model saving and loading
- Keepalived 实现 Redis AutoFailover (RedisHA)1
- JS教程之使用 ElectronJS、VueJS、SQLite 和 Sequelize ORM 从 A 到 Z 创建多对多 CRUD 应用程序
- 【小5聊】毕业8年,一直在追梦的路上
- R language plot visualization: plot visualizes the normalized histogram, adds the density curve KDE to the histogram, and uses geom at the bottom edge of the histogram_ Adding edge whisker graph with
- 清华“神奇药水”登Nature:逆转干细胞分化,比诺奖成果更进一步,网友:不靠精子卵子就能创造生命了?!...
- R语言使用cor函数计算相关性矩阵进行相关性分析,使用corrgram包可视化相关性矩阵、行和列使用主成分分析重新排序、下三角形中使用平滑的拟合线和置信椭圆,上三角形中使用散点图、对角线最小值和最大值
猜你喜欢

1-12Vmware新增SSH功能

Pybullet robot simulation environment construction 5 Robot pose visualization

Dialogue with the senior management of Chang'an Mazda, new products will be released in Q4, and space and intelligence will lead the Japanese system

若依如何实现接口限流?

清华“神奇药水”登Nature:逆转干细胞分化,比诺奖成果更进一步,网友:不靠精子卵子就能创造生命了?!...

SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)

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

11 introduction to CNN

When a programmer is disturbed 10 times a day, the consequences are amazing!

Structure the graduation project of actual combat camp
随机推荐
Solidus Labs欢迎香港前金融创新主管赵嘉丽担任战略顾问
[机缘参悟-31]:鬼谷子-抵巇[xī]篇-危机是危险与机会并存
神经网络“炼丹炉”内部构造长啥样?牛津大学博士小姐姐用论文解读
TCP congestion control details | 1 summary
【小5聊】毕业8年,一直在追梦的路上
R语言广义线性模型函数GLM、glm函数构建逻辑回归模型(Logistic regression)、分析模型是否过离散(Overdispersion)、使用残差偏差与二项式模型中的剩余自由度的比率评估
1-12vmware adds SSH function
股票开户优惠链接,我如何才能得到?在线开户安全么?
[time complexity and space complexity]
C# 读写文件从用户态切到内核态,到底是个什么流程?
安信证券排名第几位?开户安全吗?
How to implement interface current limiting?
stm32h7b0替代h750程序导致单片机挂掉无法烧录程序问题
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
大话领域驱动设计——表示层及其他
The first batch in the industry! Tencent cloud security and privacy computing products based on angel powerfl passed CFCA evaluation
【蓝桥杯集训100题】scratch辨别质数合数 蓝桥杯scratch比赛专项预测编程题 集训模拟练习题第15题
Développer un opérateur basé sur kubebuilder (démarrer)
"C language" question set of ⑩
Develop operator based on kubebuilder (for getting started)