// functions are declared with the keyword "func", a name, and a mandatory parentheses func main() /* Between the parentheses, no, one or more parameters separated by commas can be given as input. The main functions is required as a starting point of every app. It has no parameters and no return type. */ func func_Name(param1 type 1, param2 type2){ ... } /* The code or body in functions is enclosed between braces "{}". The first brace MUST be on the same line as the function declaration, and the last brace is positiones ageter the function code. */ func func_NameA(param1 type1, param2 type2) type1 { ... } func func_NameB(param1 type1, param2 type2) type1 { ... } func func_NameC(param1 type1, param2 type2) }(ret1 type1, ret2 type2) { ... } /* We can specify the type that a function returns as seen in func_NameA, or the variable name and type as in func_NameB. A general function returning multple variables looks like func_NameC */ func Sum(a, b int) int { return a + b} // Smaller functions can be written in one line.