Если вы используете App
черту, то вам не нужно переопределить main
метод - просто написать свой код в теле 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)
}
Это работает, потому что App
черта распространяется DelayedInit черта, которая имеет очень специальная процедура инициализации. Вы даже можете получить доступ к аргументам с помощью args
, как показано в примере.
Вам все еще нужно написать main
метод, если вы не хотите, чтобы продлить App
, но в этом случае он будет работать, как ожидалось:
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)
}
}