Home >Backend Development >Golang >How Can I Simulate Named Function Arguments in Go?
In Go, function calls require arguments to be listed in the same order as the function parameters. However, you might prefer to specify arguments explicitly by their names like this:
MyFunction(name: "Bob", address: "New York", nick: "Builder", age: 30, value: 1000)
Non-Named Arguments Not Supported
Unfortunately, Go does not support named arguments for functions. As mentioned in the Go specification, you must specify values in the expected order for all non-variadic parameters.
Option 1: Use a Struct Wrapper
To imitate named arguments, you can create a struct that wraps the function parameters:
type Params struct { name, address, nick string age, value int } func MyFunction(p Params) { // perform some operations using p.name, p.address, etc. } func main() { MyFunction(Params{ name: "Bob", address: "New York", nick: "Builder", age: 30, value: 1000, }) }
Option 2: Use a Helper Function
If you cannot modify the original function, create a helper function that takes a struct parameter and calls the original function with the appropriate fields as arguments.
func MyFunction2(p Params) { MyFunction(p.name, p.address, p.nick, p.age, p.value) } func main() { MyFunction2(Params{ name: "Bob", address: "New York", nick: "Builder", age: 30, value: 1000, }) }
The above is the detailed content of How Can I Simulate Named Function Arguments in Go?. For more information, please follow other related articles on the PHP Chinese website!