En aquest tema, aprendrem sobre les variables i els tipus de dades en Scala. Aquest és un concepte fonamental que necessitem dominar per poder escriure programes efectius i eficients en Scala.
Continguts
Declaració de Variables
En Scala, podem declarar variables utilitzant les paraules clau val
i var
.
val
: Declara una variable immutable (no es pot canviar després de la seva inicialització).var
: Declara una variable mutable (es pot canviar després de la seva inicialització).
Exemple:
val immutableVariable: Int = 10 var mutableVariable: Int = 20 // immutableVariable = 15 // Això donarà un error perquè immutableVariable és immutable mutableVariable = 25 // Això és correcte perquè mutableVariable és mutable
Tipus de Dades Bàsics
Scala proporciona diversos tipus de dades bàsics que podem utilitzar per emmagatzemar diferents tipus d'informació.
Tipus de Dades Numèrics
Tipus | Descripció | Exemple |
---|---|---|
Int |
Enter de 32 bits | val x: Int = 10 |
Long |
Enter de 64 bits | val y: Long = 100L |
Float |
Número de coma flotant de 32 bits | val z: Float = 10.5f |
Double |
Número de coma flotant de 64 bits | val w: Double = 20.5 |
Tipus de Dades de Caràcter i Cadena
Tipus | Descripció | Exemple |
---|---|---|
Char |
Caràcter únic | val c: Char = 'A' |
String |
Seqüència de caràcters | val s: String = "Hola" |
Tipus de Dades Booleans
Tipus | Descripció | Exemple |
---|---|---|
Boolean |
Valor de veritat (true o false) | val b: Boolean = true |
Exemple:
val age: Int = 25 val pi: Double = 3.14159 val initial: Char = 'A' val greeting: String = "Hola, Scala!" val isScalaFun: Boolean = true
Tipus de Dades Complexos
A més dels tipus de dades bàsics, Scala també proporciona tipus de dades més complexos com les tuples, les opcions, i les col·leccions (que veurem en detall en mòduls posteriors).
Tuples
Les tuples permeten agrupar múltiples valors de diferents tipus en una sola unitat.
val person: (String, Int) = ("John", 30) val (name, age) = person println(s"Nom: $name, Edat: $age")
Options
Les opcions s'utilitzen per representar valors que poden o no estar presents.
val someValue: Option[Int] = Some(5) val noValue: Option[Int] = None someValue match { case Some(v) => println(s"Valor: $v") case None => println("No hi ha valor") }
Conversió de Tipus
En Scala, podem convertir un tipus de dada a un altre utilitzant mètodes de conversió.
Exemple:
val x: Int = 10 val y: Double = x.toDouble val z: String = x.toString println(s"Int: $x, Double: $y, String: $z")
Exercicis Pràctics
Exercici 1
Declara una variable immutable val
anomenada myAge
de tipus Int
i assigna-li el valor de la teva edat. Després, intenta canviar el valor de myAge
i observa què passa.
Solució:
Exercici 2
Declara una variable mutable var
anomenada temperature
de tipus Double
i assigna-li un valor inicial. Després, canvia el valor de temperature
a un altre valor.
Solució:
Exercici 3
Crea una tupla que contingui el teu nom (String) i la teva edat (Int). Després, imprimeix els valors de la tupla.
Solució:
val person: (String, Int) = ("Joan", 25) val (name, age) = person println(s"Nom: $name, Edat: $age")
Exercici 4
Declara una variable val
anomenada maybeValue
de tipus Option[Int]
i assigna-li el valor Some(10)
. Després, utilitza una coincidència de patrons per imprimir el valor si està present, o un missatge si no ho està.
Solució:
val maybeValue: Option[Int] = Some(10) maybeValue match { case Some(v) => println(s"Valor: $v") case None => println("No hi ha valor") }
Conclusió
En aquest tema, hem après sobre les variables i els tipus de dades en Scala. Hem vist com declarar variables immutables i mutables, els diferents tipus de dades bàsics i complexos, i com convertir tipus de dades. També hem practicat aquests conceptes amb alguns exercicis pràctics. Ara estem preparats per avançar cap a les estructures de control i funcions en Scala.
Curs de Programació en Scala
Mòdul 1: Introducció a Scala
- Introducció a Scala
- Configuració de l'Entorn de Desenvolupament
- Conceptes Bàsics de Scala: Sintaxi i Estructura
- Variables i Tipus de Dades
- Operacions Bàsiques i Expressions
Mòdul 2: Estructures de Control i Funcions
- Declaracions Condicionals
- Bucles i Iteracions
- Funcions i Mètodes
- Funcions d'Ordre Superior
- Funcions Anònimes
Mòdul 3: Col·leccions i Estructures de Dades
- Introducció a les Col·leccions
- Llistes i Arrays
- Conjunts i Mapes
- Tuples i Options
- Coincidència de Patrons
Mòdul 4: Programació Orientada a Objectes en Scala
- Classes i Objectes
- Herència i Traits
- Classes Abstractes i Classes Case
- Objectes Companys
- Objectes Singleton
Mòdul 5: Programació Funcional en Scala
- Immutabilitat i Funcions Pures
- Estructures de Dades Funcionals
- Monads i Functors
- For-Comprehensions
- Gestió d'Errors en la Programació Funcional
Mòdul 6: Conceptes Avançats de Scala
- Conversions i Paràmetres Implícits
- Classes de Tipus i Polimorfisme
- Macros i Reflexió
- Concurrència en Scala
- Introducció a Akka