50% off DataCamp Premium. 700+ courses, half price. Start learning today.
Introductie

Scala is ontworpen door Martin Odersky, een professor aan de École Polytechnique Fédérale de Lausanne (EPFL) in Zwitserland en een Duitse informaticus. Martin begon in 2001 aan Scala te werken en in 2004 werd het voor het eerst uitgebracht.
Scala staat voor Scalable Language. Het is een algemene, objectgeoriënteerde taal met enkele overeenkomsten met de programmeertaal Java. De taal biedt ondersteuning voor functioneel programmeren. Veel ontwerpkeuzes in Scala zijn gemaakt om tekortkomingen van de programmeertaal Java aan te pakken.
Een paar functies die Scala biedt:
-
De broncode van Scala kan worden gecompileerd naar Java-bytecode en is daardoor uitvoerbaar op een Java Virtual Machine (JVM).
-
Het biedt taalinteroperabiliteit met Java, zodat bibliotheken die in een van beide talen zijn geschreven, kunnen worden gebruikt in een Scala- of Java-codebase.
-
Net als Java gebruikt Scala ook een syntax met accolades.
-
Het heeft veel kenmerken van functionele programmeertalen zoals Scheme, Standard Machine Learning en Haskell, waaronder currying, type-inferentie, onveranderlijkheid, luie evaluatie en pattern matching.
-
Ondersteuning voor webapplicaties met JavaScript.
-
In tegenstelling tot Java ondersteunt Scala ook operatoroverloading, optionele parameters, benoemde parameters en ruwe strings.
Een interessant feit over Scala is dat het veel wordt gebruikt door bedrijven als Apple, Twitter, Walmart en Google vanwege de schaalbaarheid en de inzetbaarheid in backendprocessen.
Scala instellen in Jupyter Notebook
Jupyter Notebook is een van de meest gebruikte tools in de informatica, vooral binnen data science. Het ondersteunt ook Scala-ontwikkeling met behulp van spylon-kernel.
Opmerking: Ben je nieuw met Jupyter Notebook? Bekijk dan gerust deze uitgebreide tutorial.
Het opzetten van de Scala-omgeving in Jupyter Notebook is geen hogere wiskunde. Laten we het snel doen in een paar stappen.
-
Installeer eerst de
spylon-kernel.pip install spylon-kernel(Python 2)pip3 install spylon-kernel(Python 3) -
Maak vervolgens een kernel-specificatie aan waarmee je de
scala-kernelin Jupyter Notebook kunt selecteren.python -m spylon_kernel install(Python 2)python3 -m spylon_kernel install(Python 3) -
Installeer daarna, als belangrijke stap,
pysparkenfindsparkaangezienspylon-kernelook enkelespark-componenten installeert.pip install pyspark findspark(Python 2)pip3 install pyspark findspark(Python 3) -
Start tot slot je Jupyter Notebook, kies als kernel
spylon-kernelen je kunt aan de slag!

- Laten we een klein stukje code uitvoeren om te testen of de Scala-kernel correct is geconfigureerd.
val x = 2
val y = 3
x*y
x: Int = 2
y: Int = 3
res1: Int = 6
Top! Zoals je uit de bovenstaande output kunt opmaken, is het gelukt om de Scala-omgeving in Jupyter Notebook te configureren.
Basis-syntax
Laten we beginnen met het afdrukken van Hello, World! in Scala.
print("Hello, World!")
Hello, World!
Zoals je ziet is het heel eenvoudig: een print-opdracht gevolgd door de invoer als argument.
Bekijk nu een paar details over de syntax in Scala:
-
Scala is hoofdlettergevoelig, wat betekent dat de identifiers
DataCampendataCampin Scala iets anders betekenen. -
In Scala moet de eerste letter van alle klassennamen in
hoofdletterstaan. Als meerdere woorden samen een klassenaam vormen, moet van elk afzonderlijk woord de eerste letter een hoofdletter zijn. Bijvoorbeeld:class MyScalaDataCampTutorial. -
De methodenamen in Scala werken iets anders dan
klassennamen, vooral ommethodenamente onderscheiden vanklassennamen. Methodenamen moeten met een kleine letter beginnen (Bron). Als meerdere woorden samen de naam van de methode vormen, moet van elk innerlijk woord de eerste letter een hoofdletter zijn. Bijvoorbeeld:def firstDatacampScalaTutorial() -
In Scala moet de naam van het programmabestand exact overeenkomen met de objectnaam. Wanneer je het bestand opslaat, moet je de objectnaam gebruiken en
.scalaaan het einde toevoegen. Stel datScalaTutorialde objectnaam is. Dan moet het bestand worden opgeslagen alsScalaTutorial.scala.Opmerking: Als de bestandsnaam en de objectnaam niet overeenkomen, wordt je programma niet eens gecompileerd.
-
Ten slotte start, net als bij de meeste programmeertalen, de verwerking van een Scala-programma ook vanuit de
main()-methode, een cruciaal onderdeel van elk Scala-programma.
Onderstaande afbeelding toont de gereserveerde woorden in Scala die niet kunnen worden gebruikt als constanten of variabelen of als andere identifiers.
Datatypes
Datatypes in Scala zijn vrijwel identiek aan die in veel andere programmeertalen zoals C, C++, Java, Python, enz., met een vergelijkbare geheugengrootte en precisie.
Bekijk tot slot enkele van de datatypes die in Scala bestaan:
-
Int: Een 32-bits signed (kan zowel positieve als negatieve waarden aannemen) waarde met een bereik van $2^{-31}$ tot $2^{31} - 1$
-
Byte: Een 8-bits signed waarde met een bereik van $2^{-7}$ tot $2^{7} - 1$
-
Short: Een 16-bits signed waarde met een bereik van $2^{-15}$ tot $2^{15} - 1$
-
Long: Een 64-bits signed waarde met een bereik van $2^{-63}$ tot $2^{63} - 1$
-
Float: Zowel 32-bits (single precision float) als 64-bits (double precision float)
-
Char: Een 16-bits unsigned (kan alleen positieve waarden aannemen) Unicode-teken.
Enkele andere datatypes zijn String, Boolean, Null.
Conclusie
Gefeliciteerd met het afronden van deze tutorial.
Dit is een goed startpunt voor beginners die Scala willen leren.
Wil je meer leren? Bekijk de Scala-tutorials van DataCamp:
Basis van functies en methoden in Scala
Er is een schat aan informatie over Scala die nog niet aan bod is gekomen, zoals if/else, for-loops, verschillende operatoren in Scala, enzovoort. Dit komt in toekomstige tutorials aan bod, dus blijf ons volgen!
Referenties:
Stel gerust je vragen over deze tutorial in de reacties hieronder.
Onderwerpen
