👩💻 Функции в GoФункция — это блок кода, который выполняет определенную задачу.
func functionname(parametername type) returntype {
//function body
}Объявление функции начинается с
func ключевого слова, за которым следует
functionname. Параметры указываются между
( ) за которыми следует
returntype функция. Синтаксис для указания параметра следующий: имя параметра, за которым следует тип. Можно указать любое количество параметров, например
(parameter1 type, parameter2 type). Затем следует блок кода между
{ }, который является телом функции.
func functionname() {
// Параметры и возвращаемый тип являются необязательными в функции
}// Несколько возвращаемых значений
package main
import (
"fmt"
)
func rectProps(length, width float64)(float64, float64) {
var area = length * width
var perimeter = (length + width) * 2
return area, perimeter
}
func main() {
area, perimeter := rectProps(10.8, 5.6)
fmt.Printf("Area %f Perimeter %f", area, perimeter)
}
// Именованные возвращаемые значения
func rectProps(length, width float64)(area, perimeter float64) {
area = length * width
perimeter = (length + width) * 2
return //no explicit return value
}
Пустой идентификатор.
_ известен как пустой идентификатор в Go. Его можно использовать вместо любого значения любого типа
package main
import (
"fmt"
)
func rectProps(length, width float64) (float64, float64) {
var area = length * width
var perimeter = (length + width) * 2
return area, perimeter
}
func main() {
// Так как нам не нужен perimeter - мы его отбрасываем
area, _ := rectProps(10.8, 5.6) // perimeter is discarded
fmt.Printf("Area %f ", area)
}
Экспортированные имена — это те, что начинаются с заглавной буквы, и они доступны для использования в других
пакетах. Это также работает и на переменные
// Экспортируемая функция
func PrintMessage() {
fmt.Println("Hello from package!")
}
// Внутрипакетная функция
func internalFunction() {
fmt.Println("This is an internal function")
}
#golang #go #функции #func