Функции в Go

Зарегистрируйтесь и зарабатывайте 1000$ в день ⋙

В Go функции представляют собой блоки кода, выполняющие определенные задачи, которые можно повторно использовать в программе для экономии памяти, улучшения читаемости и экономии времени. Функции Golang могут возвращать или не возвращать значение вызывающей стороне.

Функции в Go

Что нужно знать о функциях в Golang

Например:

package main
import "fmt"

// multiply() nhân 2 số nguyên và trả về kết quả
func multiply(a, b int) int {
    return a * b
}

func main() {
    result := multiply(5, 10)
    fmt.Printf("multiplication: %d", result)
}

Результат:

multiplication: 50

Синтаксис функций в Golang

func function_name(Parameter-list)(Return_type) {
    // function body...
}

Декларация функции

В Go функция объявляется с помощью ключевого слова func, за которым следуют имя, параметры и необязательный тип возвращаемого значения.

Синтаксис

func function_name(Parameter-list)(Return_type) {
    // function body...
}

Пример функции умножения

func multiply(a, b int) int {
    return a * b
}

func: Ключевое слово для объявления функции.
function_name: Имя функции, например умножить.
Список параметров: a, b int — параметры вместе с их типами.
Return_type: int указывает тип возвращаемого значения.

Функция вызова

Чтобы использовать функцию, просто вызовите ее по имени со всеми необходимыми аргументами. Здесь multiply(5, 10) вызывает функцию с 5 и 10 в качестве аргументов.

Например

result := multiply(5, 10)
fmt.Printf("Result of multiplication: %d", result)

Аргументы функции

Go поддерживает два способа передачи параметров функциям: вызов по значению и вызов по ссылке. По умолчанию Go использует вызов по значению, что означает, что значения копируются, а изменения внутри функции не влияют на переменные вызывающей стороны.

Звонок по значению

При вызове по значению значения аргументов копируются в параметры функции, поэтому изменения в функции не влияют на исходные переменные.

Например:

package main
import "fmt"

func multiply(a, b int) int {
    a = a * 2 // chỉnh sửa bên trong hàm này
    return a * b
}

func main() {
    x := 5
    y := 10
    fmt.Printf("Before: x = %d, y = %d\n", x, y)
    result := multiply(x, y)
    fmt.Printf("multiplication: %d\n", result)
    fmt.Printf("After: x = %d, y = %d\n", x, y)
}

Результат:

Before: x = 5, y = 10
multiplication: 100
After: x = 5, y = 10

Звонок по ссылке

При вызове по ссылке используются указатели, благодаря чему изменения внутри функции отражаются в переменных вызывающей стороны.

Например:

package main
import "fmt"

func multiply(a, b *int) int {
    *a = *a * 2 // chỉnh sửa giá trị của a ở địa chỉ bộ nhớ của nó
    return *a * *b
}

func main() {
    x := 5
    y := 10
    fmt.Printf("Before: x = %d, y = %d\n", x, y)
    result := multiply(&x, &y)
    fmt.Printf("multiplication: %d\n", result)
    fmt.Printf("After: x = %d, y = %d\n", x, y)
}

Результат

Before: x = 5, y = 10
multiplication: 100
After: x = 10, y = 10
Sign up and earn $1000 a day ⋙

Leave a Comment

Разница между обычным телевизором и Smart TV

Разница между обычным телевизором и Smart TV

Умные телевизоры действительно покорили мир. Благодаря множеству замечательных функций и возможности подключения к Интернету технологии изменили то, как мы смотрим телевизор.

Почему в морозильной камере нет подсветки, а в холодильнике есть?

Почему в морозильной камере нет подсветки, а в холодильнике есть?

Холодильники — привычные бытовые приборы. Холодильники обычно имеют 2 отделения: холодильное отделение просторное и имеет подсветку, которая автоматически включается каждый раз, когда пользователь ее открывает, а морозильное отделение узкое и не имеет подсветки.

2 способа устранения перегрузки сети, которая замедляет Wi-Fi

2 способа устранения перегрузки сети, которая замедляет Wi-Fi

На сети Wi-Fi влияют многие факторы, помимо маршрутизаторов, пропускной способности и помех, но есть несколько разумных способов улучшить работу вашей сети.

Как перейти с iOS 17 на iOS 16 без потери данных с помощью Tenorshare Reiboot

Как перейти с iOS 17 на iOS 16 без потери данных с помощью Tenorshare Reiboot

Если вы хотите вернуться к стабильной версии iOS 16 на своем телефоне, вот базовое руководство по удалению iOS 17 и понижению версии с iOS 17 до 16.

Что происходит с организмом, если вы едите йогурт каждый день?

Что происходит с организмом, если вы едите йогурт каждый день?

Йогурт — замечательная еда. Полезно ли есть йогурт каждый день? Как изменится ваше тело, если вы будете есть йогурт каждый день? Давайте узнаем вместе!

Какой вид риса лучше всего подходит для здоровья?

Какой вид риса лучше всего подходит для здоровья?

В этой статье рассматриваются наиболее питательные виды риса и способы максимально увеличить пользу для здоровья любого выбранного вами вида риса.

Как просыпаться вовремя утром

Как просыпаться вовремя утром

Установление режима сна и отхода ко сну, смена будильника и корректировка рациона питания — вот некоторые из мер, которые помогут вам лучше спать и вовремя просыпаться по утрам.

Советы по игре Rent Please! Симулятор арендодателя для новичков

Советы по игре Rent Please! Симулятор арендодателя для новичков

Арендуйте, пожалуйста! Landlord Sim — мобильная игра-симулятор для iOS и Android. Вы будете играть за владельца жилого комплекса и начнете сдавать квартиры в аренду, чтобы улучшить интерьер своих апартаментов и подготовить их к приему арендаторов.

Последние коды защиты башни в ванной и как вводить коды

Последние коды защиты башни в ванной и как вводить коды

Получите игровой код Bathroom Tower Defense Roblox и обменяйте его на потрясающие награды. Они помогут вам улучшить или разблокировать башни с более высоким уроном.

Конструкция, обозначения и принципы работы трансформаторов

Конструкция, обозначения и принципы работы трансформаторов

Давайте максимально подробно изучим конструкцию, обозначения и принципы работы трансформаторов.

4 способа, которыми ИИ делает умные телевизоры лучше

4 способа, которыми ИИ делает умные телевизоры лучше

От лучшего качества изображения и звука до голосового управления и многого другого — эти функции на базе искусственного интеллекта делают смарт-телевизоры намного лучше!

Почему ChatGPT лучше DeepSeek

Почему ChatGPT лучше DeepSeek

Поначалу люди возлагали большие надежды на DeepSeek. Как ИИ-чат-бот, позиционируемый как серьезный конкурент ChatGPT, он обещает интеллектуальные возможности и возможности чата.

Встречайте Fireflies.ai: бесплатный секретарь на базе искусственного интеллекта, который сэкономит вам часы работы

Встречайте Fireflies.ai: бесплатный секретарь на базе искусственного интеллекта, который сэкономит вам часы работы

Легко упустить важные детали, записывая другие важные вещи, а попытки делать заметки во время общения могут отвлекать. Решение — Fireflies.ai.

Как вырастить Аксолотля Майнкрафт, приручить Саламандру Майнкрафт

Как вырастить Аксолотля Майнкрафт, приручить Саламандру Майнкрафт

Аксолот в Minecraft станет отличным помощником для игроков при действиях под водой, если они знают, как им пользоваться.

A Quiet Place: The Road Ahead Конфигурация игры для ПК

A Quiet Place: The Road Ahead Конфигурация игры для ПК

Конфигурация A Quiet Place: The Road Ahead имеет довольно высокий рейтинг, поэтому вам нужно будет рассмотреть ее перед принятием решения о загрузке.