Golang : Proper way to set function argument default value
In PHP, it is easy to specify the default values of a function arguments. All you need to do is just specify $argument_variable = default_value
in the function arguments such as :
function word_limiter($str, $limit = 100, $end_char = '…')
{
...
}
In Golang, it is not permissible to specify default values in a function arguments using the same method in PHP. Attempt to specify default values for the function arguments will cause the source code parser to throw out syntax error
.
This example code below demonstrate the simplest way to set default values in Golang by using the IF statement.
Here you go!
package main
import (
"fmt"
"strconv"
)
func failExample(s string, i int) string {
// wrong way to set default values
// will override input parameters/arguments !!!
s = "empty"
i = -1
return s + strconv.Itoa(i)
}
func okExample(s string, i int) string {
// set default values -- the proper way
if s == "" {
s = "empty"
}
if i == 0 {
i = -1
}
return s + strconv.Itoa(i)
}
func main() {
result := failExample("abc", 123)
fmt.Println("Fail example : ", result)
result1 := okExample("abc", 123)
fmt.Println("Ok example 1 : ", result1)
result2 := okExample("", 123)
fmt.Println("Ok example 2 : ", result2)
result3 := okExample("", 0)
fmt.Println("Ok example 3 : ", result3)
}
Output :
Fail example : empty-1
Ok example 1 : abc123
Ok example 2 : empty123
Ok example 3 : empty-1
References:
https://www.socketloop.com/tutorials/golang-return-multiple-values-from-function
See also : Golang : How to make function callback or pass value from function as parameter?
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+15.1k nginx: [emerg] unknown directive "ssl"
+21k Golang : Create and resolve(read) symbolic links
+25.5k Golang : Daemonizing a simple web server process example
+19.7k Golang : Count JSON objects and convert to slice/array
+12k Golang : Decompress zlib file example
+26.2k Golang : Convert(cast) string to uint8 type and back to string
+15.5k Golang : Get checkbox or extract multipart form data value example
+22k Golang : Repeat a character by multiple of x factor
+19.3k Golang : How to count the number of repeated characters in a string?
+21.6k Golang : Convert string slice to struct and access with reflect example
+29.7k Golang : How to declare kilobyte, megabyte, gigabyte, terabyte and so on?
+17.4k Golang : delete and modify XML file content