libraryDependencies += "com.github.scopt" %% "scopt" % "4.0.1" scala import scopt.OParser object Main { case class Config(username: String = "", password: String = "", verbose: Boolean = false) def main(args: Array[String]): Unit = { } } scala def main(args: Array[String]): Unit = { val builder = OParser.builder[Config] val parser = { import builder._ OParser.sequence( programName("my-program"), head("my-program", "1.0"), opt[String]('u', "username") .action((value, config) => config.copy(username = value)) .text("username is a required string property"), opt[String]('p', "password") .action((value, config) => config.copy(password = value)) .text("password is a required string property"), opt[Unit]('v', "verbose") .action((_, config) => config.copy(verbose = true)) .text("enable verbose output"), ) } OParser.parse(parser, args, Config()) match { case Some(config) => case _ => } } scala OParser.parse(parser, args, Config()) match { case Some(config) => println(s"Username: ${config.username}") println(s"Password: ${config.password}") println(s"Verbose mode: ${config.verbose}") case _ => println("Invalid command line arguments") } scala import scopt.OParser object Main { case class Config(username: String = "", password: String = "", verbose: Boolean = false) def main(args: Array[String]): Unit = { val builder = OParser.builder[Config] val parser = { import builder._ OParser.sequence( programName("my-program"), head("my-program", "1.0"), opt[String]('u', "username") .action((value, config) => config.copy(username = value)) .text("username is a required string property"), opt[String]('p', "password") .action((value, config) => config.copy(password = value)) .text("password is a required string property"), opt[Unit]('v', "verbose") .action((_, config) => config.copy(verbose = true)) .text("enable verbose output") ) } OParser.parse(parser, args, Config()) match { case Some(config) => println(s"Username: ${config.username}") println(s"Password: ${config.password}") println(s"Verbose mode: ${config.verbose}") case _ => println("Invalid command line arguments") } } } $ scala Main -u john.doe -p mypassword -v Username: john.doe Password: mypassword Verbose mode: true Invalid command line arguments


上一篇:
下一篇:
切换中文