0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>В Go переменные объявляются с помощью ключевого слова var:</p>
1
<p>В Go переменные объявляются с помощью ключевого слова var:</p>
2
<p>Переменной name задаётся имя и тип (string). Позже в неё можно присвоить значение. Объявление и присваивание можно объединить:</p>
2
<p>Переменной name задаётся имя и тип (string). Позже в неё можно присвоить значение. Объявление и присваивание можно объединить:</p>
3
<p>После этого переменной можно присвоить другое значение того же типа:</p>
3
<p>После этого переменной можно присвоить другое значение того же типа:</p>
4
<p>Go - строго типизированный язык, поэтому тип переменной фиксирован: если name объявлена как строка, в неё нельзя записать число или логическое значение.</p>
4
<p>Go - строго типизированный язык, поэтому тип переменной фиксирован: если name объявлена как строка, в неё нельзя записать число или логическое значение.</p>
5
<h2>Значения по умолчанию</h2>
5
<h2>Значения по умолчанию</h2>
6
<p>Если переменную объявить без инициализации, она получит значение по умолчанию. Для строк это пустая строка, для чисел - ноль, для булевых значений - false.</p>
6
<p>Если переменную объявить без инициализации, она получит значение по умолчанию. Для строк это пустая строка, для чисел - ноль, для булевых значений - false.</p>
7
<h2>Вывод типа</h2>
7
<h2>Вывод типа</h2>
8
<p>Если при объявлении переменной сразу указать значение, тип можно не писать - компилятор выведет его сам на основе переданного значения. Это упрощает запись, особенно когда тип очевиден:</p>
8
<p>Если при объявлении переменной сразу указать значение, тип можно не писать - компилятор выведет его сам на основе переданного значения. Это упрощает запись, особенно когда тип очевиден:</p>
9
<p>При этом тип сохраняется за переменной, как если бы он был написан явно. В дальнейшем переменной можно присваивать только значения этого типа. Попытка записать значение другого типа приведёт к ошибке компиляции. Например, если name была строкой, то присваивать ей число нельзя.</p>
9
<p>При этом тип сохраняется за переменной, как если бы он был написан явно. В дальнейшем переменной можно присваивать только значения этого типа. Попытка записать значение другого типа приведёт к ошибке компиляции. Например, если name была строкой, то присваивать ей число нельзя.</p>
10
<p>Вывод типа работает только при одновременном объявлении и инициализации. Если вы просто пишете var city, без значения, то компилятор не сможет вывести тип и выдаст ошибку. В таких случаях тип нужно указывать явно:</p>
10
<p>Вывод типа работает только при одновременном объявлении и инициализации. Если вы просто пишете var city, без значения, то компилятор не сможет вывести тип и выдаст ошибку. В таких случаях тип нужно указывать явно:</p>
11
<h2>Краткая форма объявления</h2>
11
<h2>Краткая форма объявления</h2>
12
<p>Внутри функций можно использовать сокращённую форму объявления переменной с помощью оператора :=:</p>
12
<p>Внутри функций можно использовать сокращённую форму объявления переменной с помощью оператора :=:</p>
13
<p>Эта форма позволяет одновременно создать переменную и присвоить ей значение. Тип по-прежнему выводится автоматически. Такой синтаксис упрощает запись и активно используется в Go-коде. Важно помнить, что := работает только внутри функций. Вне функции можно использовать только var.</p>
13
<p>Эта форма позволяет одновременно создать переменную и присвоить ей значение. Тип по-прежнему выводится автоматически. Такой синтаксис упрощает запись и активно используется в Go-коде. Важно помнить, что := работает только внутри функций. Вне функции можно использовать только var.</p>
14
<p>С помощью := можно объявлять несколько переменных сразу:</p>
14
<p>С помощью := можно объявлять несколько переменных сразу:</p>
15
<p>При этом типы обеих переменных будут выведены по значениям. Такой способ часто используется при обработке нескольких значений, например при возврате значений из функции.</p>
15
<p>При этом типы обеих переменных будут выведены по значениям. Такой способ часто используется при обработке нескольких значений, например при возврате значений из функции.</p>
16
<h2>Особенности</h2>
16
<h2>Особенности</h2>
17
<ul><li>Все переменные должны использоваться - иначе ошибка компиляции.</li>
17
<ul><li>Все переменные должны использоваться - иначе ошибка компиляции.</li>
18
<li>Имя переменной нельзя использовать до её объявления.</li>
18
<li>Имя переменной нельзя использовать до её объявления.</li>
19
</ul>
19
</ul>