How to create a function with an optional parameter in Scala

3 Answers

0 votes
// Scala gives you  optional parameters through two main mechanisms:
// default parameter values and Option[T] types. 

// Default Parameter Values 
// Scala lets you assign a default value directly in the function signature.

object Main {
  def greet(name: String = "Guest"): Unit =
    println(s"Hello, $name")

  def main(args: Array[String]): Unit = {
    greet("Cosmic")
    greet()
  }
}



/*
run:

Hello, Cosmic
Hello, Guest

*/

 



answered 5 hours ago by avibootz
0 votes
// Scala gives you  optional parameters through two main mechanisms:
// default parameter values and Option[T] types. 

// Using Option[T] 

object Main {
  def greet(name: Option[String]): Unit =
    println(s"Hello, ${name.getOrElse("Guest")}")

  def main(args: Array[String]): Unit = {
    greet(Some("Cosmic"))
    greet(None)
  }
}



/*
run:

Hello, Cosmic
Hello, Guest

*/

 



answered 5 hours ago by avibootz
0 votes
// Scala gives you  optional parameters through two main mechanisms:
// default parameter values and Option[T] types. 

// Optional parameters via case class config 
// When you have several optional settings, bundle them into a config object

object Main {
    case class GreetOptions(
      name: Option[String] = None,
      shout: Boolean = false
    )

    def greet(opts: GreetOptions = GreetOptions()): Unit =
      val base = opts.name.getOrElse("Guest")
      val finalName = if opts.shout then base.toUpperCase else base
      println(s"Hello, $finalName")

    def main(args: Array[String]): Unit = {
        greet()                                     
        greet(GreetOptions(name = Some("Dana")))  
        greet(GreetOptions(name = Some("Anna"), shout = true)) 

      }
}



/*
run:

Hello, Guest
Hello, Dana
Hello, ANNA

*/

 



answered 5 hours ago by avibootz
...