当前位置:网站首页>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.!!!
边栏推荐
猜你喜欢

Supplement the short board - Open Source im project openim about initialization / login / friend interface document introduction

Quickly get started with federal learning -- the practice of Tencent's self-developed federal learning platform powerfl

The first open source MySQL HTAP database in China will be released soon, and the three highlights will be notified in advance

JS教程之使用 ElectronJS、VueJS、SQLite 和 Sequelize ORM 从 A 到 Z 创建多对多 CRUD 应用程序

Cuckoo filter for Chang'an chain transaction

Structure the graduation project of actual combat camp
![[Li Kou brush question] monotone stack: 84 The largest rectangle in the histogram](/img/75/440e515c82b5613b117728ba760786.png)
[Li Kou brush question] monotone stack: 84 The largest rectangle in the histogram

Développer un opérateur basé sur kubebuilder (démarrer)

Pybullet robot simulation environment construction 5 Robot pose visualization

大话领域驱动设计——表示层及其他
随机推荐
Solidus Labs欢迎香港前金融创新主管赵嘉丽担任战略顾问
(DFS search) acwing 2005 horseshoe
Anaconda3 installation tensorflow version 2.0 CPU and GPU installation, win10 system
Développer un opérateur basé sur kubebuilder (démarrer)
Redis migration (recommended operation process) 1
Develop operator based on kubebuilder (for getting started)
The first batch in the industry! Tencent cloud security and privacy computing products based on angel powerfl passed CFCA evaluation
Binary array command of redis
SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)
当一个程序员一天被打扰 10 次,后果很惊人!
Hyperf框架使用阿里云OSS上传失败
Swiftui retrieves the missing list view animation
Niuke programming problem -- dynamic programming of must brush 101 (a thorough understanding of dynamic programming)
[机缘参悟-31]:鬼谷子-抵巇[xī]篇-危机是危险与机会并存
Cuckoo filter for Chang'an chain transaction
Data analysis - numpy quick start
Arduino uno + DS1302 simple time acquisition and serial port printing
Notes on key review of software engineering at the end of the term
我把它当副业月入3万多,新手月入过万的干货分享!
神经网络“炼丹炉”内部构造长啥样?牛津大学博士小姐姐用论文解读