In Scala we can declare variables and constants:
var balance: Double = 100.0
val pi: DOuble = 3.14
In this example balance is the name of a container that currently contains 100.0.
The content of the container can be changed using an assignment command:
balance = 10.0 + balance // now balance contains 110.0
By contrast, pi is a constant that can't be changed:
pi = 10.0 + pi // error
We can also declare methods, objects, and classes in Scala:
class Gladiator {
var health: Int = 100
def attack(opponent: Gladiator): Unit =
{
val damage = 5
opponent.health = opponent.health –
damage
}
}
object Tournament {
def main(args: Array[String]): Unit = {
val fang: Gladiator = new Gladiator()
val zing: Gladiator = new Gladiator()
fang.attack(zing)
zing.attack(fang)
}
}
Declarations can be global or nested in a block:
{
int x = 10;
int y = 20;
{
int x = 5;
int z = 30;
x = x + 1;
y = x + y + z;
}
println("x = " + x); // prints
10
println("y = " + y); // prints
56
println("z = " + z); // error
z not visible here
}
The scope of a declaration is the region of the program where it is visible.
The scope of a declaration can be:
public
package
protected
private
local
The scope of a declaration should be as small as possible.