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!