Packages and Imports
Avoiding Name Collisions
Use qualified names to keep same-named methods apart.
Avoiding Name Collisions
NamespaceLabels.scala
object Metric {
def label(n: Int): String = n + "m"
}
object Imperial {
def label(n: Int): String = n + "ft"
}
object Main {
def main(args: Array[String]): Unit = {
val n =
val metric = Metric.label(n)
val imperial = Imperial.label(n)
println("metric=" + metric)
println("imperial=" + imperial)
}
}
object Metric {
def label(n: Int): String = n + "m"
}
object Imperial {
def label(n: Int): String = n + "ft"
}
object Main {
def main(args: Array[String]): Unit = {
val n =
val metric = Metric.label(n)
val imperial = Imperial.label(n)
println("metric=" + metric)
println("imperial=" + imperial)
}
}
object Metric {
def label(n: Int): String = n + "m"
}
object Imperial {
def label(n: Int): String = n + "ft"
}
object Main {
def main(args: Array[String]): Unit = {
val n =
val metric = Metric.label(n)
val imperial = Imperial.label(n)
println("metric=" + metric)
println("imperial=" + imperial)
}
}
namespace-labels
Two objects can define a method with the same name. Qualifying each call with its object name, like `Metric.label` and `Imperial.label`, avoids any clash.