当前位置:网站首页>Scala Foundation (3): Operators and Process Control
Scala Foundation (3): Operators and Process Control
2022-06-29 01:38: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 27 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 rejoindreCSDNDe1212Oh, mon Dieu..J'ai trouvé ça utile.、Commentaires、️Collection
Catalogue des articles
Un.、Opérateur
ScalaLes opérateurs etJavaLes opérateurs sont essentiellement les mêmes.
Opérations arithmétiques
+ - * / %,+Et-Signe positif et signe négatif dans un tableau d'opérations non armé,Représentation de l'addition et de la soustraction dans les opérations binaires./Indique la Division,Ne laissez que la partie entière et laissez tomber la partie décimaleEn plus de ça,,
+Représente également l'addition de deux chaînes
Opérations relationnelles
== != < > <= >=- InJavaMoyenne,
==Comparer les valeurs des deux variables elles - mêmes,C'est la première adresse de deux objets en mémoire,equalsComparer si la chaîne contient le même contenu. - ScalaDans
==Plus similaire Java Dansequals,Eteq()Comparer les adresses
Opérations logiques
&& || !, Le résultat de l'opération est un BooleanValeur- Scala Les courts - circuits sont également pris en charge
&& ||
Opérations d'affectation
= += -= *= /= %=- InScalaIl n'y a pas de
++Et--Cette syntaxe,Adoption+=、-=Pour obtenir le même effet
Opérations de bits
& | ^ ~<< >> >>>,Parmi eux<< >>C'est signé gauche et droite ,>>>Déplacement à droite non signé
In Scala Il n'y a pas d'opérateur, Tous les opérateurs sont des appels de méthode .
- Lorsque la méthode de l'objet est appelée,Point.Peut être omis
- Si un seul paramètre de fonction,Ou sans paramètres,()Peut être omis
- Priorité de l'opérateur:
(characters not shown below)
* / %
+ -
:
= !
< >
&
^
|
(all letters, $, _)
Prends une châtaigne.:
object Test {
def main(args: Array[String]): Unit = {
// Addition standard
val i: Int = 1.+(1)
// Lorsque la méthode de l'objet est appelée,.Peut être omis
val n: Int = 1 + (1)
// Si un seul paramètre de fonction,Ou sans paramètres,()Peut être omis
val m: Int = 1 + 1
println(i + " , " + n + " , " + m)
}
}
2.、Contrôle des processus
Scala Le contrôle du processus est le même que dans les autres langages de programmation , Contient également des déclarations de branche 、Déclarations circulaires, etc..
if - else
Syntaxe de base:
if (Expression conditionnelle) {
Extrait de code
}else if (Expression conditionnelle) {
Extrait de code
}else {
Extrait de code
}
Prends une châtaigne.:
object Test01_ifelse {
def main(args: Array[String]): Unit = {
println("Veuillez entrer votre âge:")
val age: Int = StdIn.readInt();
if (age >= 18 && age < 30) {
println("Âge moyen")
} else if (age < 18) {
println("Junior")
} else {
println("Vieillesse")
}
}
}
Particularités:
- Contrairement aux autres langues,ScalaDans
if elseL'expression a en fait une valeur de retour,Peut également être utilisé comme expression, Valeur de retour définie comme la dernière instruction exécutée - Scala Type de valeur de retour incohérent dans,Prenez leur type d'ancêtre commun.
- La valeur de retour peut être
UnitType, Ignorer la valeur de la dernière expression pour le moment ,Je l'ai.() - scala Il n'y a pas d'opérateur de condition ternaire dans ,Ça marche
if (a) b else cSubstitutiona ? b : c - Les branches imbriquées ont les mêmes caractéristiques .
Prends une châtaigne.:
object Test01_ifelse {
def main(args: Array[String]): Unit = {
println("Veuillez entrer votre âge:")
// Valeur de retour de l'instruction de branche
val result: Unit = if (age >= 18) {
println("Félicitations pour,Adulte.")
} else if (age < 18) {
println("Excusez - moi,Tu es mineur.")
} else {
println(" Tu es une personne ")
}
println("result:" + result)
val result2: String = if (age >= 18) {
println("Félicitations pour,Adulte.")
"Félicitations pour,Adulte."
} else if (age < 18) {
println("Excusez - moi,Tu es mineur.")
"Excusez - moi,Tu es mineur."
} else {
println(" Tu es une personne ")
" Tu es une personne "
}
println("result:" + result2)
// Différents types de valeurs de retour prennent des parents communs
val result3: Any = if (age >= 18) {
println("Félicitations pour,Adulte.")
"Félicitations pour,Adulte."
} else if (age < 18) {
println("Excusez - moi,Tu es mineur.")
age
} else {
println(" Tu es une personne ")
age
}
println("result:" + result3)
// javaOpérations TERNAIRES en a?b:c scalaUtilisé dans if (a) b else c
val res: String = if(age>=18){
"Adulte"
}else{
"Mineur"
}
val res1 = if (age>= 18) "Adulte" else "Mineur"
}
}
for
ScalaDansfor Le cycle est appelé for Dérivé de
Traversée de la portée:
for (i <- 1 to 10) {
println(i + ":hello world")
}
iReprésente la variable de boucle<-C'est l'équivalent d'assigner une valeur de traversée à une variable1 to 10RichIntUn appel de méthode dans,Retour à unRange- Fermeture avant et arrière
for (i <- 1 until 10) {
println(i + ":hello world")
}
untilC'est aussiRichIntUne méthode dans,RetourRangeCatégorie- Fermeture avant et ouverture arrière
La gamme est aussi une collection , Vous pouvez également traverser une collection normale .
for (i <- Array(10, 28, 9, 3, 2)) {
println(i)
}
for (i <- List(10, 28, 9, 3, 2)) {
println(i)
}
for (i <- Set(10, 28, 9, 3, 2)) {
println(i)
}
Étapes du cycle:by + Étapes
for (i <- 1 to 10 by 2) {
println(i)
}
for (i <- 30 to 10 by -2) {
println(i)
}
Bouclez les gardes:
Bouclez les gardes,C'est - à - dire le type de protection de la circulation(Aussi appelé jugement conditionnel,Garde!).La protection est true Dans le corps circulant,Pour false Sautez.,Similaire à continue.
Syntaxe:
for(i <- collection if condition) {
}
Équivalent à:
if (i <- collection) {
if (condition) {
}
}
Prends une châtaigne.:
for (i <- 1 to 10) {
if (i != 5) {
println(i)
}
}
for (i <- 1 to 10 if i != 5) {
println(i)
}
Boucle imbriquée:
Les boucles imbriquées peuvent combiner les conditions en un forMoyenne.
Syntaxe:
for (i <- 1 to 3) {
for (j <- 1 to 3) {
println("i = " + i + ",j = " + j)
}
}
Équivalent à:
for (i <- 1 to 3; j <- 1 to 5) {
println("i = " + i + ",j = " + j)
}
Prends une châtaigne.:Imprimer le tableau de multiplication
object Test03_PracticeMulTable {
def main(args: Array[String]): Unit = {
for (i <- 1 to 9; j <- 1 to i) {
print(s"$j * $i = ${
i * j} \t")
if (j == i) println()
}
}
}
Boucle dans la variable:
Variables introduites dans la boucle , Mais pas une variable circulaire .
for (i <- 1 to 10; j = 10 - i) {
println("i = " + i + ", j = " + j)
}
Équivalent à:
for {
i <- 1 to 10;
j = 10 - i
} {
println("i = " + i + " , j = " + j)
}
Valeur de retour du cycle:
- ScalaMoyennefor La valeur de retour par défaut de la boucle est
Unit,Exemple().
val a: Unit = for (i <- 1 to 10) {
println(i)
}
- yield:Java Une façon de thread est yield Représente une concession de fil
- scalaC'est un mot clé Représentation:À l'heure actuellefor Un type de collection est généré à l'intérieur de la boucle comme valeur de retour ,Et revenir à.
- Renvoie les résultats du processus de traversée à un nouveau Vector Ensemble,Utiliser yield Mots clés.
val b: immutable.IndexedSeq[Int] = for (i <- 1 to 10) yield i * i
// default implementation is Vector, Vector(1, 4, 9, 16, 25, 36, 49, 64, 81, 100)
while Et do…while
While Et do…While Utilisation et Java Même utilisation dans la langue,Non recommandé,Le type de résultat estUnit.
Syntaxe:
while (Conditions de circulation) {
Corps circulatoire(Déclarations)
Itération des variables cycliques
}
do{
Corps circulatoire(Déclarations)
Itération des variables cycliques
} while(Conditions de circulation)
Interruption du cycle
Scala La structure de contrôle intégrée a été spécifiquement enlevée break Et continue,Pour mieux s'adapter à la programmation fonctionnelle,Il est recommandé d'utiliser un style fonctionnel pour résoudrebreakEtcontinueLa fonction de,Au lieu d'un mot - clé.ScalaUtilisé dansbreakableStructure de contrôle pour réaliser break Et continue Fonction.
Lancer une exception pour interrompre la boucle
try {
for (i <- 0 until 5) {
if (i == 3)
throw new RuntimeException
println(i)
}
} catch {
case e: Exception => // Cycle de sortie
}
UtiliserscalaDansBreaksDansbreakMéthodes( C'est l'équivalent de simplement encapsuler la capture d'exception ),Pour lancer et capturer des exceptions.
import scala.util.control.Breaks
Breaks.breakable(
for (i <- 0 until 5) {
if (i == 3)
Breaks.break()
println(i)
}
)
Le contenu de ce partage est terminé ici ,J'espère apprendre de tout le mondeScala La langue aide !!!
边栏推荐
- 想请教股票开户要认识谁?现在网上开户安全么?
- Typescript (5) class, inheritance, polymorphism
- Near consensus mechanism
- Magic Quadrant of motianlun's 2021 China Database
- 统计学习方法(4/22)朴素贝叶斯
- Testing until you're 35? The 35 + test will lead to unemployment?
- Typescript (4) interface
- SAP ui5 beginner tutorial Part 23 - sorting sort and grouping Group trial version of list control
- [image enhancement] manual multiple exposure fusion amef image defogging based on MATLAB [including Matlab source code 1916]
- Statistical learning method (3/22) k-nearest neighbor method
猜你喜欢

What is the difference between immunohistochemistry and immunohistochemistry?

In simple terms, server intrusion prevention

Vulnerability mining | routine in password retrieval

月薪过万的测试员,是一种什么样的生活状态?

4276. 擅长C

立创eda学习笔记:铺铜死区?孤岛?死铜?

How to use PN junction to measure temperature?

Edrawmax mind map, edrawmax organization chart

Design and development of VB mine sweeping game

肖特基二极管在防止电源反接的作用
随机推荐
P7 Erkai early know - registration and application creation
QT基于RFID管理系统(可应用于大多数RFID管理系统)
[js practice every m days] JS export object analysis based on libcef application (steam)
What is the difference between immunohistochemistry and immunohistochemistry?
Day 8 script and audio
Installation de la base de données Oracle dans docker
TypeScript(5)类、继承、多态
TypeScript(4)接口
[Fire Detection] forest fire detection system based on Matlab GUI (with panel) [including Matlab source code phase 1921]
Typescript (4) interface
月薪过万的测试员,是一种什么样的生活状态?
Database - optimizer
Linux7 (centos7) setting oracle11 boot auto start
Analysis of parsing principle of OData metadata request response in SAP ui5 application
立创eda学习笔记:铺铜死区?孤岛?死铜?
SRAM和DRAM之间的异同
第七天 脚本与特效
TypeScript(7)泛型
AHA C language, C language programming introductory books and PPT (PDF version) download website
Docker中安裝Oracle數據庫