// 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.