golang go func code example

Example 1: golang function

package main

import "fmt"

func basicFunction() {
	fmt.Println("basic function golang")
}

var variableFunction = func() {
	fmt.Println("basic function golang with variable function")
}

func parameterFunc(a, b int) {
	addition := a + b
	fmt.Println("total", addition)
}

func returningFunc(a, b int) int {
	addition := a + b
	return addition
}

func multipleReturningFunc(a, b int) (string, int) {
	multiple := a + b
	return "nilainya adalah", multiple
}

func multipleReturningNamingFunc(a, b int) (multiple, subtract int) {
	multiple = a * b
	subtract = a - b
	return
}

func variadicFunction(array ...int) (sum int) {

	for _, v := range array {
		sum = v
		fmt.Println(sum)
	}

	return
}

func anonymousFunc() {
	name := "john doe"
	func() {
		fmt.Println(name)
	}()
}

func anonymousParamsFunc() {
	name := "jane doe"
	func(str string) {
		fmt.Println(str)
	}(name)
}

func closureFunc() func() string {
	name := "john"
	return func() string {
		name += "doe"
		return name
	}
}

func main() {
	clousure := closureFunc()

	basicFunction()
	variableFunction()
	parameterFunc(10, 2)
	fmt.Println("total", returningFunc(10, 10))
	fmt.Println(multipleReturningFunc(40, 2))
	fmt.Println(multipleReturningNamingFunc(10, 2))
	variadicFunction(1, 2, 3, 4, 5)
	anonymousFunc()
	anonymousParamsFunc()
	fmt.Println(clousure())
	fmt.Println(clousure())
	fmt.Println(clousure())
}

Example 2: golang go func

go func(msg string) {
        for i := 0; i < 3; i++ {
        fmt.Println(from, ":", i)
    }
    }("going")

Example 3: run thread golang

func f(s string){
	fmt.Println(s)
}

func main(){
	go f("goroutine")
}