HTML Diff
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>