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

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

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

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

Основные термины при передаче параметров функциям:

  • Фактические параметры: Аргументы, передаваемые функции.
  • Формальные параметры: параметры, получаемые функцией.

Например

package main
import "fmt"

// Cố gắng sửa đổi giá trị của num
func modify(num int) {
    num = 50
}

func main() {
    num := 20
    fmt.Printf("Before, num = %d\n", num)
    modify(num)
    fmt.Printf("After, num = %d\n", num)
}

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

Синтаксис

func functionName(param Type) {
    // function body                                        # Gọi theo giá trị
}

func functionName(param *Type) {
    // function body                                       # Gọi theo tham chiếu
}

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

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

Синтаксис

func functionName(param Type) {
    // function body
}

Например:

package main
import "fmt"

// Chỉnh sửa giá trị của num
func modify(num int) {
    num = 50
}

func main() {
    num := 20
    fmt.Printf("Before, num = %d\n", num)
    modify(num)
    fmt.Printf("After, num = %d\n", num)
}

Результат:

Before, num = 20
After, num = 20

Значение остается прежним, поскольку изменения внутри modifyне влияют на numвнешние main.

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

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

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

Синтаксис

func functionName(param *Type) {
    // function body
}

Например:

package main
import "fmt"

// Chỉnh sửa giá trị của num qua tham chiếu
func modify(num *int) {
    *num = 50
}

func main() {
    num := 20
    fmt.Printf("Before, num = %d\n", num)
    modify(&num)
    fmt.Printf("After, num = %d\n", num)
}

Результат

Before, num = 20
After, num = 50

Поскольку numон передается по ссылке, команда modifyизменит его значение, что отразится в команде main.

Sign up and earn $1000 a day ⋙

Leave a Comment

Как использовать константы в Golang

Как использовать константы в Golang

Что такое Constant или Const в Golang? Вот что вам нужно знать об использовании констант в Go.

Нестабильные функции в Golang

Нестабильные функции в Golang

Вариативные функции в Go позволяют передавать функции переменное количество аргументов. Вот все, что вам нужно знать о volatile-функциях в Golang.

Именованные возвращаемые параметры в Golang

Именованные возвращаемые параметры в Golang

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

Ключевые слова в Go

Ключевые слова в Go

Ключевое слово. Ключевые слова — это слова в языке, которые используются для обозначения какого-либо внутреннего процесса или представляют собой какое-либо предопределенное действие. Вот что вам нужно знать о ключевых словах в Golang.

Типы данных в Golang

Типы данных в Golang

Тип данных определяет тип данных, которые может содержать допустимая переменная Go. В языке Go типы делятся на четыре категории следующим образом:

Функция, возвращающая несколько значений в Golang

Функция, возвращающая несколько значений в Golang

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

Оператор Switch в Go

Оператор Switch в Go

В Golang, как и в большинстве других языков программирования, есть оператор switch. Вот как использовать оператор switch в Golang.

Случаи, которые следует знать при использовании операторов выбора в Golang

Случаи, которые следует знать при использовании операторов выбора в Golang

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

Анонимные структуры и поля в Golang

Анонимные структуры и поля в Golang

Анонимные структуры в Golang — это временные структуры без имен, используемые для одноразовых целей, в то время как анонимные поля допускают встраивание неименованных полей.

Как использовать Руну в Golang

Как использовать Руну в Golang

Что такое руны в языке Голанг? Как использовать руну в Golang? Статья даст вам ответ.

Как использовать операторы в Golang

Как использовать операторы в Golang

Операторы позволяют нам выполнять различные типы операций над операндами. В языке Go операторы можно классифицировать на основе их различных функций.

Идентификатор Void в Golang

Идентификатор Void в Golang

_(подчеркивание) в Golang называется пустым идентификатором. Идентификатор — определяемое пользователем имя компонентов программы, используемое для целей идентификации.

Как создать базовую программу на Golang

Как создать базовую программу на Golang

Привет, мир! это первая базовая программа на любом языке программирования. Вы можете написать эту первую программу на Golang, следуя инструкциям ниже.

Как установить Go на Windows

Как установить Go на Windows

Golang можно легко установить на Windows. Ниже приведено подробное пошаговое руководство по установке Golang на Windows.

Как восстановить доступ к жесткому диску, исправить ошибку невозможности открыть жесткий диск

Как восстановить доступ к жесткому диску, исправить ошибку невозможности открыть жесткий диск

В этой статье мы расскажем, как восстановить доступ к жёсткому диску в случае его сбоя. Давайте пойдём дальше!

Как использовать функции Conversation Awareness и Live Listening на AirPods

Как использовать функции Conversation Awareness и Live Listening на AirPods

На первый взгляд AirPods выглядят как любые другие беспроводные наушники. Но всё изменилось, когда были обнаружены несколько малоизвестных особенностей.

Все об iOS 26

Все об iOS 26

Apple представила iOS 26 — крупное обновление с совершенно новым дизайном «матовое стекло», более интеллектуальным интерфейсом и улучшениями в знакомых приложениях.

Лучшие ноутбуки для студентов в 2025 году

Лучшие ноутбуки для студентов в 2025 году

Студентам нужен определённый тип ноутбука для учёбы. Он должен быть не только достаточно мощным для успешной работы на выбранной специальности, но и достаточно компактным и лёгким, чтобы его можно было носить с собой весь день.

Как добавить принтер в Windows 10

Как добавить принтер в Windows 10

Добавить принтер в Windows 10 просто, хотя процесс для проводных устройств будет отличаться от процесса для беспроводных устройств.

Как проверить оперативную память и ошибки оперативной памяти на компьютере с максимальной точностью

Как проверить оперативную память и ошибки оперативной памяти на компьютере с максимальной точностью

Как вы знаете, оперативная память (ОЗУ) — очень важный компонент компьютера, выполняющий функцию памяти для обработки данных и определяющий скорость работы ноутбука или ПК. В статье ниже WebTech360 расскажет вам о нескольких способах проверки оперативной памяти на наличие ошибок с помощью программного обеспечения в Windows.

Разница между обычным телевизором и 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 и обменяйте его на потрясающие награды. Они помогут вам улучшить или разблокировать башни с более высоким уроном.