Scala. Профессиональное программирование [Мартин Одерски] (pdf) читать постранично, страница - 4
Книга в формате pdf! Изображения и текст могут не отображаться!
[Настройки текста] [Cбросить фильтры]
180
Повторяющиеся параметры . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Именованные аргументы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Значения параметров по умолчанию . . . . . . . . . . . . . . . . . . . . . . 182
8.9. Тип SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
183
8.10. Хвостовая рекурсия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
184
Трассировка функций с хвостовой рекурсией . . . . . . . . . . . . . . . 185
Ограничения хвостовой рекурсии . . . . . . . . . . . . . . . . . . . . . . . . 187
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
188
Глава 9. Управляющие абстракции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.1. Сокращение повторяемости кода . . . . . . . . . . . . . . . . . . . . . . . . . .
189
189
9.2. Упрощение клиентского кода . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
193
9.3. Карринг . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
195
9.4. Создание новых управляющих конструкций . . . . . . . . . . . . . . . . . .
196
9.5. Передача параметров по имени . . . . . . . . . . . . . . . . . . . . . . . . . . .
199
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
202
Глава 10. Композиция и наследование . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.1. Библиотека двумерной разметки . . . . . . . . . . . . . . . . . . . . . . . . . .
203
203
10.2. Абстрактные классы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
204
10.3. Определяем методы без параметров . . . . . . . . . . . . . . . . . . . . . . .
205
10.4. Расширяем классы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
208
10.5. Переопределяем методы и поля . . . . . . . . . . . . . . . . . . . . . . . . . .
210
10.6. Определяем параметрические поля . . . . . . . . . . . . . . . . . . . . . . .
211
10.7. Вызываем конструктор суперкласса . . . . . . . . . . . . . . . . . . . . . . . .
212
Оглавление 11
10.8. Используем модификатор override . . . . . . . . . . . . . . . . . . . . . . . . .
213
10.9. Полиморфизм и динамическое связывание . . . . . . . . . . . . . . . . . .
215
10.10. Объявляем финальные элементы . . . . . . . . . . . . . . . . . . . . . . . .
217
10.11. Используем композицию и наследование . . . . . . . . . . . . . . . . . .
218
10.12. Реализуем методы above, beside и toString . . . . . . . . . . . . . . . . . . 220
10.13. Определяем фабричный объект . . . . . . . . . . . . . . . . . . . . . . . . .
223
10.14. Методы heighten и widen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
224
10.15. Собираем все вместе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
228
Глава 11. Трейты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.1. Как работают трейты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
229
229
11.2. Сравнение «тонких» и «толстых» интерфейсов . . . . . . . . . . . . . . .
232
11.3. Трейты как наращиваемые модификации . . . . . . . . . . . . . . . . . . .
235
11.4. Почему не используется множественное наследование . . . . . . . . .
239
11.5. Параметры трейтов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
243
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
245
Глава 12. Пакеты, импорты и экспорты . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.1. Помещение кода в пакеты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
247
247
12.2. Краткая форма доступа к родственному коду . . . . . . . . . . . . . . . .
249
12.3. Импортирование кода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
252
12.4. Неявное импортирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
255
12.5. Модификаторы доступа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
256
Приватные члены . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Защищенные члены . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Публичные члены . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Область защиты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Видимость и объекты-компаньоны . . . . . . . . . . . . . . . . . . . . . . . 260
12.6. Определения верхнего уровня . . . . . . . . . . . . . . . . . . . . . . . . . . .
261
12.7. Экспорты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
262
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
265
Глава 13. Сопоставление с образцом . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.1. Простой пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
266
266
case-классы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Сопоставление с образцом . . . . . . . . . . . . . . . . . . . . . . . .
Последние комментарии
1 час 18 минут назад
2 часов 51 минут назад
6 часов 44 минут назад
6 часов 48 минут назад
12 часов 9 минут назад
1 день 23 часов назад