func
Uppercase functions are exported for package
No overloading
func [name]([arg1] [argtype1], ...) [rtype] {
}e.g
func addV(val1 int, val2 int) int {
return val1 + val2
}
sum := addV(1, 4)If all same type can omit types
func addV(val1, val2 int) int {
return val1 + val2
}Arbitrary Amount of Args
Can do if all same type
func addAllValues(values ...int) int { //passes in args as slice
sum := 0
for i:= range values {
sum += values[i]
}
return sum
}
addAllValues(45, 123, 7)Multi Returns
Neccessary for error handling as often return (val, err)
Naming Returns(Naked Returns)
Don't return, just set vars
Defer
defer is put on a stack and done in LIFO order at end of ft scope
Uses?
defer closing of database and files
vars have value frozen
Last updated