Jeśli używasz App
cechę, wtedy nie trzeba zastąpić main
sposób - wystarczy napisać kod w ciele object
:
object Main extends App {
val NameTemplate = """^([A-Za-z]+)_(\d+)\.png""".r
println(NameTemplate)
val NameTemplate(name, version) = args(0)
println(name + " v" + version)
}
To działa, ponieważ App
cecha rozciąga DelayedInit cechę, która ma bardzo specjalna procedura inicjalizacji. Możesz nawet uzyskać dostęp do argumentów z args
, jak pokazano w przykładzie.
Trzeba jeszcze napisać main
metody, jeśli nie chcesz, aby przedłużyć App
, ale w tym przypadku to będzie działać zgodnie z oczekiwaniami:
object Main {
val NameTemplate = """^([A-Za-z]+)_(\d+)\.png""".r
def main(args: Array[String]) {
println(NameTemplate)
val NameTemplate(name, version) = args(0)
println(name + " v" + version)
}
}