How to set a default value to function parameters in Go

2 Answers

0 votes
// You achieve default value to function parameters functionality using variadic or wrapper functions.

package main

import "fmt"

// Original function without default parameter
func print(name string, age int) {
    fmt.Printf("name: %s age: %d\n", name, age)
}

// Wrapper function with default parameter value
func printWithDefault(name string, age ...int) {
    defaultAge := 24
    
    if len(age) > 0 {
        print(name, age[0])
    } else {
        print(name, defaultAge)
    }
}

func main() {
    printWithDefault("Frank Enstein")   
    
    printWithDefault("Al Dente", 41)       
}


/*
run:

name: Frank Enstein age: 24
name: Al Dente age: 41

*/

 



answered Jan 28, 2025 by avibootz
edited Jan 28, 2025 by avibootz
0 votes
package main

import "fmt"

func f(args ...interface{}) string {
  a := "default"
  b := -1

  for _, arg := range args {
    switch t := arg.(type) {
      case string:
        a = t
      case int:
        b = t
      default:
        panic("Unknown argument")
    }
      }

  return fmt.Sprintf("%s %d\n", a, b)
}

func main() {
    fmt.Printf(f("Frank Enstein"))
    
    fmt.Printf(f("Al Dente", 41))
    
    fmt.Printf(f())
}


/*
run:

Frank Enstein -1
Al Dente 41
default -1

*/

 



answered Jan 28, 2025 by avibootz

Related questions

1 answer 101 views
1 answer 107 views
1 answer 91 views
1 answer 109 views
2 answers 108 views
1 answer 106 views
1 answer 82 views
...