|
26 | 26 |
|
27 | 27 | Этот код вычисляет площадь прямоугольника. Мы используем для этого функцию `area`, но это не метод структуры "rectangle" (как методы классов в классических объектно-ориентированных языках). Как Вы можете заметить, функция и структура здесь - две независимые друг от друга сущности.
|
28 | 28 |
|
29 |
| -Пока что это не является проблемой. Однако, если Вам нужно будет посчитать также площади круга, квадрата, пятиугольника или другой геометрической фигуры, Вам придется добавлять новые фукнции с похожими именами. |
| 29 | +Пока что это не является проблемой. Однако, если Вам нужно будет посчитать также площади круга, квадрата, пятиугольника или другой геометрической фигуры, Вам придется добавлять новые функции с похожими именами. |
30 | 30 |
|
31 | 31 | 
|
32 | 32 |
|
|
214 | 214 |
|
215 | 215 | ### Использование указателя в качестве ресивера
|
216 | 216 |
|
217 |
| -Давайте посмотрим на метод `SetColor`. Его ресивером является указатель на Box. Да, можно использовать `*Box` в качесве ресивера. Почему мы использовали здесь указатель? Потому что в этом методе мы хотим изменить цвет коробки (Box). Если бы мы не использовали указатель, метод бы изменил цвет лишь у копии Box. |
| 217 | +Давайте посмотрим на метод `SetColor`. Его ресивером является указатель на Box. Да, можно использовать `*Box` в качестве ресивера. Почему мы использовали здесь указатель? Потому что в этом методе мы хотим изменить цвет коробки (Box). Если бы мы не использовали указатель, метод бы изменил цвет лишь у копии Box. |
218 | 218 |
|
219 | 219 | Если мы видим, что ресивер - первый аргумент метода, несложно понять, как это работает.
|
220 | 220 |
|
|
247 | 247 |
|
248 | 248 | // определяем метод в Human
|
249 | 249 | func (h *Human) SayHi() {
|
250 |
| - fmt.Printf("Привет, меня зовут %s, моете позвонить мне по телефону %s\n", h.name, h.phone) |
| 250 | + fmt.Printf("Привет, меня зовут %s, можете позвонить мне по телефону %s\n", h.name, h.phone) |
251 | 251 | }
|
252 | 252 |
|
253 | 253 | func main() {
|
|
0 commit comments