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
