当前位置:网站首页>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设计强大的多平台桌面应用程序的好工具
- Niuke programming problem -- dynamic programming of must brush 101 (a thorough understanding of dynamic programming)
- 【力扣刷题】二分查找:4. 寻找两个正序数组的中位数
- Make up the weakness - Open Source im project openim about initialization / login / friend interface document introduction
- 精致妆容成露营“软实力”,唯品会户外美妆护肤产品销量激增
- mha 切换(操作流程建议)
- NFT transaction principle analysis (2)
- R语言plotly可视化:小提琴图、多分类变量小提琴图、分组(grouped)小提琴图、分裂的分组小提琴图、每个小提琴图内部分为两组数据、每个分组占小提琴图的一半、自定义小提琴图的调色板、抖动数据点
- pybullet机器人仿真环境搭建 5.机器人位姿可视化
- Cookie和Session详解
猜你喜欢

Cuckoo filter for Chang'an chain transaction

基于STM32+华为云IOT设计的云平台监控系统

李飞飞团队将ViT用在机器人身上,规划推理最高提速512倍,还cue了何恺明的MAE...

Quickly get started with federal learning -- the practice of Tencent's self-developed federal learning platform powerfl
![[机缘参悟-31]:鬼谷子-抵巇[xī]篇-危机是危险与机会并存](/img/e8/9c5f1658a252c3c80503b5021917f6.jpg)
[机缘参悟-31]:鬼谷子-抵巇[xī]篇-危机是危险与机会并存

IAR工程适配GD32芯片

若依如何实现接口限流?

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

This year, the AI score of college entrance examination English is 134. The research of Fudan Wuda alumni is interesting

无需人工先验!港大&同济&LunarAI&旷视提出基于语义分组的自监督视觉表征学习,显著提升目标检测、实例分割和语义分割任务!...
随机推荐
Notes on key review of software engineering at the end of the term
当一个程序员一天被打扰 10 次,后果很惊人!
【从删库到跑路】JDBC 完结篇(一天学完系列!!学完赶紧跑!)
若依如何实现接口限流?
2 three modeling methods
2 三种建模方式
【时间复杂度和空间复杂度】
Codeforces Round #802 (Div. 2)
基於Kubebuilder開發Operator(入門使用)
The details of the first pig heart transplantation were fully disclosed: human herpes virus was found in the patient, the weight of the heart doubled after death, and myocardial cell fibrosis
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
数据分析----numpy快速入门
对话长安马自达高层,全新产品将在Q4发布,空间与智能领跑日系
[time complexity and space complexity]
[untitled]
Which position does Anxin securities rank? Is it safe to open an account?
(DFS search) acwing 2005 horseshoe
mha 切换(操作流程建议)
Solidus labs welcomes zhaojiali, former head of financial innovation in Hong Kong, as a strategic adviser
Redis order sorting command