Scala-Tutorial Scala ist eine Multiparadigmen-Programmiersprache, die darauf ausgelegt ist, verschiedene Funktionen der objektorientierten Programmierung und der funktionalen Programmierung zu integrieren.
Scala ist eine Multiparadigmen-Programmiersprache, eine Java-?hnliche Programmiersprache. Sie wurde ursprünglich entwickelt, um eine skalierbare Sprache zu implementieren und verschiedene Funktionen der objektorientierten Programmierung und der funktionalen Programmierung zu integrieren.
Das erste Scala-Programm
Das Folgende ist ein typisches Hello World-Programm, das in Scala geschrieben wurde:
Beispiel
object HelloWorld extends App { println("Hello, world!") }
Instanz ausführen?
Klicken Sie auf ?Instanz ausführen“ Klicken Sie auf die Schaltfl?che, um Online-Instanzen
oder
Instanzen
object HelloWorld { def main(args: Array[String]) { println("Hello, world!") } }
Instanz ausführen?< anzuzeigen ??>Schaltfl?che ?Instanz ausführen“, um Online-Instanzen anzuzeigen
Beachten Sie, dass es der Hello World-Anwendung von Java ?hnelt. Ein wesentlicher Unterschied besteht darin, dass die Scala-Version des Hello World-Programms die Hauptmethode nicht über das Schlüsselwort static als statische Methode markiert, sondern das Schlüsselwort object zum Erstellen eines Singletons verwendet.
Angenommen, das Programm ist als HelloWorld.scala-Datei gespeichert, kann es dann über die folgende Befehlszeile kompiliert werden:
> scalac HelloWorld.scala
Zum Ausführen:
> scala -classpath . HelloWorld
Das ist das Gleiche wie das Kompilieren und Ausführen von Java. Ist das Programm ?Hello World“ nicht sehr ?hnlich? Tats?chlich entspricht das Kompilierungs- und Ausführungsmodell von Scala dem von Java und ist daher auch mit den Build-Tools von Java wie Ant kompatibel.
Sie k?nnen das Programm auch direkt mit dem Scala-Interpreter ausführen, indem Sie die Option -i ( Code aus Datei laden) und Option -e (um zus?tzlichen Code auszuführen, müssen Sie tats?chlich die Methode des HelloWorld-Objekts ausführen):
> scala -i HelloWorld.scala -e 'HelloWorld.main(null)'
Tipp: Unsere Scala-Tutorials werden helfen Ihnen, Scala vom Anf?nger bis zum Fortgeschrittenen zu lernen. Wenn Sie Fragen haben, besuchen Sie bitte die chinesische PHP-Website Scala Community , um Ihre Fragen zu stellen, und begeisterte Internetnutzer werden sie für Sie beantworten.
Scala-Funktionen
Unterstützte Programmierparadigmen
Objektorientierte Funktionen
Scala ist Eine rein objektorientierte Sprache, in der jeder Wert ein Objekt ist. Der Datentyp und das Verhalten eines Objekts werden durch Klassen und Merkmale beschrieben. Es gibt zwei M?glichkeiten, den Klassenabstraktionsmechanismus zu erweitern. Ein Ansatz ist die Vererbung von Unterklassen und der andere Ansatz ist ein flexibler Mixin-Mechanismus. Mit diesen beiden Ans?tzen k?nnen die Probleme der Mehrfachvererbung vermieden werden.
Funktionale Programmierung
Scala ist ebenfalls eine funktionale Sprache und ihre Funktionen k?nnen auch als Werte verwendet werden. Scala bietet eine schlanke Syntax zum Definieren anonymer Funktionen, unterstützt Funktionen h?herer Ordnung, erm?glicht die Verschachtelung mehrerer Funktionsebenen und unterstützt Currying. Die Fallklassen von Scala und ihr integrierter Mustervergleich entsprechen den algebraischen Typen, die üblicherweise in funktionalen Programmiersprachen verwendet werden.
Darüber hinaus k?nnen Programmierer den Mustervergleich von Scala nutzen, um Code zu schreiben, der regul?ren Ausdrücken ?hnelt, um XML-Daten zu verarbeiten. In diesen Situationen sind Listenverst?ndnisfunktionen beim Schreiben formelhafter Abfragen nützlich.
Da die JVM die Tail-Rekursion nicht unterstützt, kann Scala die Tail-Rekursionsoptimierung nicht vollst?ndig unterstützen. Der Scala-Compiler kann jedoch einige einfache Endrekursionen in Schleifen optimieren.
Der folgende Code implementiert den Schnellsortierungsalgorithmus in einem funktionalen Stil, der mit dem Erlang-Schnellsortierungsbeispiel verglichen werden kann:
def qsort(list: List[Int]): List[Int] = list match { case Nil => Nil case pivot :: tail => val(smaller, rest) = tail.partition(_ < pivot) qsort(smaller) ::: pivot :: qsort(rest) }
Statischer Typ
Scala verfügt über ein Typsystem , durch überprüfungen der Kompilierungszeit, um Codesicherheit und -konsistenz sicherzustellen. Das Typsystem unterstützt insbesondere die folgenden Funktionen:
generische Kategorien,
Kovarianz und Kontravarianz,
-
Annotation,
Ober- und Untergrenze von Typparametern,
Kategorien und abstrakte Typen als Objektmitglieder behandeln,
Zusammengesetzter Typ,
Geben Sie den Typ explizit an, wenn Sie sich selbst referenzieren,
Ansicht,
Polymorphe Methoden.
Erweiterbarkeit
Scala ist so konzipiert, dass es der Tatsache Rechnung tr?gt, dass in der Praxis die dom?nenspezifische Anwendungsentwicklung oft dom?nenspezifische Spracherweiterungen erfordert. Scala bietet viele einzigartige Sprachmechanismen, die das einfache und nahtlose Hinzufügen neuer Sprachkonstrukte in Form von Bibliotheken erm?glichen:
Jede Methode kann als Pr?fix- oder Postfix-Operator verwendet werden,
kann automatisch Abschlüsse basierend auf dem erwarteten Typ erstellen.
Durch die Kombination der beiden oben genannten Funktionen k?nnen Sie neue Anweisungen definieren, ohne die Syntax zu erweitern oder Metaprogrammierungsfunktionen wie Makros zu verwenden.
Parallelit?t
Scala verwendet Actor als Parallelit?tsmodell, eine threadartige Entit?t, die Nachrichten über Postf?cher sendet und empf?ngt. Akteure k?nnen Threads wiederverwenden, sodass Millionen von Akteuren im Programm verwendet werden k?nnen, w?hrend Threads nur Tausende erstellen k?nnen. In Versionen nach 2.10 wird Akka als Standard-Actor-Implementierung verwendet. [20] Der folgende Code ist eine EchoServer-Implementierung im Actor-Modus
val echoServer = actor(new Act { become { case msg => println("echo " + msg) } }) echoServer ! "hi"
Der Actor-Modus kann die gleichzeitige Programmierung vereinfachen und die F?higkeiten von Multi-Core-CPUs nutzen.
Was dieses Scala-Tutorial-Handbuch behandelt
Dieses Scala-Tutorial behandelt alle grundlegenden und fortgeschrittenen Scala-Kenntnisse, einschlie?lich grundlegender Scala-Syntax, Scala-Datentypen, Scala-Variablen, Scala-Operatoren, Scala-Funktionen, Einführung in alles Grundlegende und fortgeschrittene Kenntnisse von Scala wie Scala-Strings, Scala-Klassen und -Objekte usw.
Tipps: Jedes Kapitel dieses Tutorials enth?lt viele Scala-Beispiele. Sie k?nnen direkt auf die Schaltfl?che ?Beispiel ausführen“ klicken, um die Ergebnisse online anzuzeigen. Diese Beispiele helfen Ihnen, Scala besser zu verstehen und zu verwenden.
Neuestes Kapitel
- Scala 文件 I/O 2016-10-18
- Scala 提取器(Extractor) 2016-10-18
- Scala 異常處理 2016-10-18
- Scala 正則表達(dá)式 2016-10-18
- Scala 模式匹配 2016-10-18
- Scala Trait(特征) 2016-10-18
- Scala 類和對(duì)象 2016-10-18
- Scala Iterator(迭代器) 2016-10-18
?hnliche Kurse
- Das neueste Video-Tutorial zur Weltpremiere von ThinkPHP 5.1 (60 Tage zum Online-Schulungskurs zum PHP-Experten) 2022-02-17
- Lassen Sie uns kurz über die Gründung eines Unternehmens in PHP sprechen 2023-01-04
- Umfangreiche, praktische Tianlongbabu-Entwicklung eines Mini-Version-MVC-Frameworks, das die Enzyklop?die-Website mit peinlichen Dingen imitiert 2018-01-25
- Anmeldebest?tigung und klassisches Message Board 2018-03-02
- Erste Schritte mit der praktischen PHP-Entwicklung: Schnelle PHP-Erstellung [Small Business Forum] 2022-06-28
- Schnellstart-Node.JS-Vollversion 2022-09-30
- Schreiben Sie Ihr eigenes PHP-MVC-Framework (40 Kapitel ausführlich/gro?e Details/Muss gelesen werden, damit Neulinge vorankommen) 2022-12-08
- Video-Tutorial zum Thema Pferdesoldat im Frühling 2022-04-12
-
Wissenserweiterung
-
Tutorial-Navigation