HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Встроенная функция Append позволит вам работать с Go более эффективно. Давайте напишем эту функцию для добавления элементов в срез:</p>
1 <p>Встроенная функция Append позволит вам работать с Go более эффективно. Давайте напишем эту функцию для добавления элементов в срез:</p>
2 <p>Итак, с пользовательской функцией Append мы познакомились. Однако сигнатура append отличается от самой функции. Схематически это выглядит так:</p>
2 <p>Итак, с пользовательской функцией Append мы познакомились. Однако сигнатура append отличается от самой функции. Схематически это выглядит так:</p>
3 <p>Здесь T -- заполнитель для любого данного типа. То есть на деле вы не сможете написать функцию в Goland, где тип T будет определяться вызывающим абонентом. Именно поэтому append и встроен -- ему необходима поддержка со стороны компилятора.</p>
3 <p>Здесь T -- заполнитель для любого данного типа. То есть на деле вы не сможете написать функцию в Goland, где тип T будет определяться вызывающим абонентом. Именно поэтому append и встроен -- ему необходима поддержка со стороны компилятора.</p>
4 <p>Что же append делает? К примеру, добавляет элементы в конец среза, возвращая результат. При этом результат надо вернуть по той же причине, что и в случае с функцией Append, описанной в самом первом примере, -- главный массив может поменяться.</p>
4 <p>Что же append делает? К примеру, добавляет элементы в конец среза, возвращая результат. При этом результат надо вернуть по той же причине, что и в случае с функцией Append, описанной в самом первом примере, -- главный массив может поменяться.</p>
5 <p>Рассмотрим очередной пример:</p>
5 <p>Рассмотрим очередной пример:</p>
6 <p>Он позволяет напечатать [1 2 3 4 5 6]. То есть в каком-то смысле работу append можно сравнить с Printf, когда собирается произвольное количество аргументов.</p>
6 <p>Он позволяет напечатать [1 2 3 4 5 6]. То есть в каком-то смысле работу append можно сравнить с Printf, когда собирается произвольное количество аргументов.</p>
7 <p>Но что нам делать, если мы желаем воспользоваться возможностями Append, добавив срез в срез? На деле мы можем применить троеточие ... при вызове места, как это было в случае с вызовом Output выше. Пример ниже позволит получить результат, который идентичен вышеприведенному:</p>
7 <p>Но что нам делать, если мы желаем воспользоваться возможностями Append, добавив срез в срез? На деле мы можем применить троеточие ... при вызове места, как это было в случае с вызовом Output выше. Пример ниже позволит получить результат, который идентичен вышеприведенному:</p>
8 <p>Интересно, что без троеточия ... компиляция не отработает, т. к. типы будут неверны, ведь<em><strong>y</strong></em>к типу<strong>int</strong>не относится.</p>
8 <p>Интересно, что без троеточия ... компиляция не отработает, т. к. типы будут неверны, ведь<em><strong>y</strong></em>к типу<strong>int</strong>не относится.</p>
9 <p><em>По материалам блога https://golang-blog.blogspot.com/.</em></p>
9 <p><em>По материалам блога https://golang-blog.blogspot.com/.</em></p>
10  
10