Beginnersgids voor Scala

Inleiding

Scala is ontworpen door Martin Odersky, een hoogleraar aan de École Polytechnique Fédérale de Lausanne (EPFL) in Zwitserland en een Duitse informaticus. Martin begon met het maken van Scala in 2001 en het werd voor het eerst vrijgegeven in 2004.

Scala staat voor Scalable Language. Het is een algemene, objectgeoriënteerde taal die enkele overeenkomsten met de Java-programmeertaal heeft. Het biedt ondersteuning voor functioneel programmeren. Veel van Scala’s ontwerpdoelen waren erop gericht om de nadelen van de Java-taal te verbeteren.

Enkele kenmerken die Scala biedt zijn:

  • 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 geschreven in beide talen kunnen worden gerefereerd in Scala- of Java-codebases.

  • Net als Java gebruikt Scala ook een accolade-syntaxis.

  • Het heeft veel functies van functionele programmeertalen zoals Scheme, Standard Machine Learning en Haskell, inclusief currying, typeinferentie, onveranderlijkheid, lui-evaluatie en patroonmatching.

  • Ondersteuning voor webtoepassingen met behulp van JavaScript.

  • In tegenstelling tot Java biedt Scala ook ondersteuning voor operator overloading, optionele parameters, benoemde parameters en ruwe strings.

Een interessant feit over Scala is dat het breed wordt gebruikt door bedrijven zoals Apple, Twitter, Walmart en Google vanwege zijn schaalbaarheid en de mogelijkheid om te worden gebruikt in back-end operaties.

Scala instellen in Jupyter Notebook

De Jupyter Notebook is het meest gebruikte gereedschap in de informatica, vooral in het domein van data science. Het heeft ook ondersteuning voor Scala-ontwikkeling met behulp van spylon-kernel.

Opmerking: Voor hen die nieuw zijn bij Jupyter Notebook, voel je vrij om dit uitgebreide handleiding te bekijken.

Instellen van de Scala-omgeving in de Jupyter Notebook is geen ruimtevaartwetenschap. Dus laten we het snel instellen in slechts een paar stappen.

  • Eerst zal u de spylon-kernel installeren.

    pip install spylon-kernel (Python 2)
    pip3 install spylon-kernel (Python 3)

  • Vervolgens zal u een kernespecificatie maken die u toestaat om de scala-kernel in de jupyter notebook te selecteren.

    python -m spylon_kernel install (Python 2)
    python3 -m spylon_kernel install (Python 3)

  • Vervolgens, als een belangrijke stap, zal u pyspark en findspark installeren omdat de spylon-kernel ook enkele spark-componenten installeert.

    pip install pyspark findspark (Python 2)
    pip3 install pyspark findspark (Python 3)

  • Start ten slotte je jupyter notebook en kies kernel als spylon-kernel en je bent klaar om te gaan!

  • 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

Geweldig! Zoals je kunt zien uit de bovenstaande output, ben je erin geslaagd om de Scala-omgeving in jupyter notebook te configureren.

Basis Syntax

Laten we beginnen met het printen van Hello, World! in Scala.

print("Hello, World!")
Hello, World!

Zoals je kunt zien, was het heel eenvoudig, slechts een print commando gevolgd door de invoer als argument.

Laten we nu enkele syntaxisgerelateerde details in Scala bekijken:

  • Scala is hoofdlettergevoelig, wat betekent dat de identifier DataCamp en dataCamp een andere betekenis zouden hebben in Scala.

  • In Scala, moet de eerste letter van alle klassenamen een hoofdletter zijn. Als er meerdere woorden worden gecombineerd om een naam van de klasse te vormen, moet de eerste letter van elk afzonderlijk woord een hoofdletter zijn. Bijvoorbeeld, class MyScalaDataCampTutorial.

  • De methodenamen in Scala verschillen iets ten opzichte van klassenamen om voornamelijk de methodenamen van de klassenamen te onderscheiden. De methodenamen moeten beginnen met een kleine letter (Source). Als meerdere woorden samengevoegd worden om de naam van de methode te vormen, moeten de eerste letters van elk binnenwoord in hoofdletters zijn. Bijvoorbeeld, def firstDatacampScalaTutorial()

  • In Scala moet de naam van het programmabestand exact overeenkomen met de objectnaam. Bij het opslaan van het bestand moet je het opslaan onder de objectnaam en moet je .scala aan het einde van de naam toevoegen. Bijvoorbeeld, als de objectnaam ScalaTutorial is, moet het bestand worden opgeslagen als ScalaTutorial.scala.

    Let op: Als de bestandsnaam en de objectnaam niet overeenkomen, zal je programma niet compileren.

  • Ten slotte, zoals bij de meeste programmeertalen, begint ook de verwerking van een Scala-programma bij de main()-methode, die een crucialeel onderdeel is van elk Scala-programma.

De onderstaande afbeelding toont de gereserveerde woorden in Scala die niet gebruikt kunnen worden als constanten, variabelen of als andere identifiers.

(Source)

Data Types

Data types in Scala zijn bijna identiek aan die van veel andere programmeer talen zoals C, C++, Java, Python, enzovoort, met een soortgelijke geheugen footprint en nauwkeurigheid.

Uiteindelijk, laten we kijken naar enkele van de data types die bestaan in Scala:

  • Int: Een 32-bit ge签名 (kan zowel positieve als negatieve waarden aannemen) waardes heeft een bereik van $2^{-31}$ tot $2^{31} – 1$.

  • Byte: Een 8-bit ge签名 waarde heeft een bereik van $2^{-7}$ tot $2^{7} – 1$.

  • Short: Een 16-bit ge签名 waarde heeft een bereik van $2^{-15}$ tot $2^{15} – 1$.

  • Long: Een 64-bit ge签名 waarde heeft een bereik van $2^{-63}$ tot $2^{63} – 1$.

  • Float: Zowel 32-bit (enkele-nauwkeurigheid float) als 64-bit (dubbel-nauwkeurigheid float).

  • Char: Een 16-bit niet-ge签名 (kan alleen positieve waarden aannemen) Unicode teken.

Enkele andere data typen zijn String, Boolean, Null.

Conclusie

Gefeliciteerd met het voltooien van deze handleiding.

Dit is een goed beginpunt voor beginnende leerlingen die geïnteresseerd zijn in het leren van Scala.

Voor meer informatie, bekijk DataCamp’s Scala handleidingen:

Basics of Functions and Methods in Scala

IF ELSE in Scala

Operators in Scala

Lists in Scala

Er zijn nog veel meer gerelateerde informaties over Scala die onthuld worden, zoals if/else, for-lussen, diverse operators in Scala, enz., die in toekomstige handleidingen worden behandeld, dus blijf je op de hoogte!

Referenties:

Voel je vrij om elke vraag gerelateerd aan deze handleiding te stellen in het commentaarsectie hieronder.

Source:
https://www.datacamp.com/tutorial/beginners-guide-to-scala