From 4bdcad6388b5c522d48daab40b32790dd974665a Mon Sep 17 00:00:00 2001 From: Slava Zgordan Date: Tue, 18 Aug 2015 11:41:29 +0200 Subject: [PATCH] 02.4 --- ru/02.4.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/ru/02.4.md b/ru/02.4.md index 4d6d34f7..0f53b30d 100644 --- a/ru/02.4.md +++ b/ru/02.4.md @@ -9,7 +9,7 @@ age int } -Смотрите, как легко определять `структуру`! +Вот так как легко определять `структуру`! У нас есть два поля: @@ -35,7 +35,7 @@ P := person{"Tom", 25} -- Исопльзовать формат `поле:значение`, чтобы задать начальные значение структуры, при этом можно не соблюдать порядок, в котором поля шли при описании структуры: +- Использовать формат `поле:значение`, чтобы задать начальные значения полей структуры, при этом можно не соблюдать порядок, в котором поля шли при описании структуры: P := person{age:24, name:"Bob"} @@ -54,8 +54,8 @@ age int } - // сравниваем возраст у двух людей, затем возвращаем возраст старшего из них и разницу в возрасте - // струстуры передаются по значению + // сравниваем возраст у двух людей, затем возвращаем возраст старшего из них и разницу в возрасте. + // структуры передаются по значению func Older(p1, p2 person) (person, int) { if p1.age>p2.age { return p1, p1.age-p2.age @@ -88,11 +88,11 @@ ### Встраиваемые поля в структуре -Я только что показал Вам как определять структуру с именами и типами полей. Но Go поддерживает и поля с типами, но без имен. Мы называем это встраиваемыми полями. +Я только что показал Вам, как определять структуру с именами и типами полей. Но Go поддерживает и поля с типами, но без имен. Мы называем это встраиваемыми полями. Когда встраиваемое поле - структура, все поля этой структуры неявно становятся полями структуры, в которую оно встроено. -Посмторим на пример: +Посмотрим на пример: package main import "fmt" @@ -125,7 +125,7 @@ fmt.Println("Марк постарел") mark.age = 46 fmt.Println("Его возраст: ", mark.age) - // изменияем массу + // изменяем массу fmt.Println("Марк больше не атлет") mark.weight += 60 fmt.Println("Его масса: ", mark.weight) @@ -179,11 +179,11 @@ fmt.Println("Ее любимое число: ", jane.int) } -В примере выше мы можем видеть, что данные всех типов могут быть встраиваемыми полями, и мы можем исопльзовать функции, чтобы оперировать ими. +В примере выше мы можем видеть, что данные всех типов могут быть встраиваемыми полями, и мы можем использовать функции, чтобы оперировать ими. -Есть, впрочем, одна проблема. Если у Human есть поле под названием `phone`, а у Student тоже есть поле с таким именем, как нам быть? +Есть, впрочем, одна проблема. Если у `Human` есть поле под названием `phone`, а у `Student` тоже есть поле с таким именем, как нам быть? -В Go есть простой способ решить эту задачу. Внешние поля имеют уровень доступа выше, что означает, что, обращаясь к `student.phone`, мы оперируем с полем phone в student,а не в Human. Это свойство проще представить как `перегрузку` полей. +В Go есть простой способ решить эту задачу. Внешние поля имеют уровень доступа выше, что означает, что, обращаясь к `student.phone`, мы оперируем с полем `phone` в `student`,а не в `Human`. Это свойство проще представить как `перегрузку` полей. package main import "fmt" @@ -211,4 +211,4 @@ - [Содержание](preface.md) - Предыдущий раздел: [Управляющие конструкции и функции](02.3.md) -- Следующий раздел: [Объектно-ориентированные программирование](02.5.md) +- Следующий раздел: [Объектно-ориентированное программирование](02.5.md)