当前位置:网站首页>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.!!!
边栏推荐
- Redis Guide (8): principle and implementation of Qianfan Jingfa distributed lock
- Tencent Peking University's sparse large model training acceleration program het was selected into the VLDB of the international summit
- 理想路径问题
- SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)
- Leetcode one week race 298, first three questions
- 油田勘探问题
- 4 custom model training
- [chat in 5] eight years after graduation, I have been pursuing my dream
- Structure the graduation project of actual combat camp
- How to implement interface current limiting?
猜你喜欢

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

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

若依如何实现接口限流?
![[from database deletion to running] JDBC conclusion (finish the series in one day!! run as soon as you finish learning!)](/img/75/2fb1a4e6215e404df34849e9e4f21a.png)
[from database deletion to running] JDBC conclusion (finish the series in one day!! run as soon as you finish learning!)
![[Li Kou brush questions] 11 Container holding the most water //42 Rain water connection](/img/45/1e712300ea655856762394fba09066.png)
[Li Kou brush questions] 11 Container holding the most water //42 Rain water connection

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

C# 读写文件从用户态切到内核态,到底是个什么流程?
![[机缘参悟-31]:鬼谷子-抵巇[xī]篇-危机是危险与机会并存](/img/e8/9c5f1658a252c3c80503b5021917f6.jpg)
[机缘参悟-31]:鬼谷子-抵巇[xī]篇-危机是危险与机会并存

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!

How to implement interface current limiting?
随机推荐
当一个程序员一天被打扰 10 次,后果很惊人!
5 model saving and loading
Net基于girdview控件实现删除与编辑行数据
JS教程之使用 ElectronJS 桌面应用程序打印贴纸/标签
[207] several possible causes of Apache crash
Scala 基础 (二):变量和数据类型
Unlock the value of data fusion! Tencent angel powerfl won the "leading scientific and Technological Achievement Award" at the 2021 digital Expo
Pybullet robot simulation environment construction 5 Robot pose visualization
固件供应链公司Binarly获得WestWave Capital和Acrobator Ventures的360万美元投资
【从删库到跑路】MySQL基础 完结篇(入个门先跑路了。。)
【小5聊】毕业8年,一直在追梦的路上
Solidus labs welcomes zhaojiali, former head of financial innovation in Hong Kong, as a strategic adviser
【207】Apache崩溃的几个很可能的原因,apache崩溃几个
『C语言』题集 of ⑩
基于STM32+华为云IOT设计的云平台监控系统
Niuke programming problem -- dynamic programming of must brush 101 (a thorough understanding of dynamic programming)
知道这几个命令让你掌握Shell自带工具
Handwritten numeral recognition, run your own picture with the saved model
股票开户优惠链接,我如何才能得到?在线开户安全么?
若依打包如何分离jar包和资源文件?