package main import "fmt" // Обявление функции (первая строчка до фигурных скобок - сигнатура функции) // line и times - параметры функции func repeatLine(line string, times int) { for i := 0; i < times; i++ { fmt.Println(line) } } func paintNeeded(width float64, height float64) (float64, error) { if width < 0 { return 0, fmt.Errorf("A width of %.2f is invalid", width) } if height < 0 { return 0, fmt.Errorf("A height of %.2f is invalid", height) } area := width * height return area / 10.0, nil } // Функция возвращающая значение (тип возврата - второй float64) и обязательно return func double(num float64) float64 { return num * 2 } // Множественный возврат из функци func manyReturns() (int, bool, string) { return 1, true, "hello" } func main() { // Вызов функции( параметры становятся аргументами функции) repeatLine("hello", 4) // paintNeeded(4.2, 3.0) // paintNeeded(5.2, 3.5) // paintNeeded(5.0, 3.3) amount, err := paintNeeded(4.2, -3.0) fmt.Println(err) fmt.Printf("%.2f liters needed\n", amount) result := double(6.4) // Присвоение значения возврату из функции fmt.Print(result, "\n") myNum, myBool, myString := manyReturns() fmt.Printf("Num: %d, Bool: %t, String: %s\n", myNum, myBool, myString) }