У нас вы можете посмотреть бесплатно Первая группа для чтения: №40 Ruby – Документация или скачать в максимальном доступном качестве, видео которое было загружено на ютуб. Для загрузки выберите вариант из формы ниже:
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием видео, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса ClipSaver.ru
Давайте в формате учебной группы почитаем интересующие нас книги — так что пока устроим книжный клуб. Поскольку я ничего интересного не нашла, начну с официальной документации Ruby. Пока буду читать эту книгу, давайте немного повеселимся с программированием. Сегодня я начну со второго задания в конце книги "Blocks and Procs" (https://pine.fm/LearnToProgram/chap_1.... Документация Ruby: https://www.ruby-lang.org/en/document... Подробности каждого занятия: https://slime-caraway-717.notion.site... ■ Краткий обзор В этом видео записано наше чтение технических книг. На этот раз мы сосредоточились на блоках и замыканиях, изучая упражнения в последней главе официальной документации Ruby «Learn to Program», и реализовали простой логгер, поддерживающий вложенность. Метод `log` принимает строку `description` и блок, а метод `puts` использует вывод начального и конечного сообщений, а также возвращаемого значения блока. Сравнивая синтаксис `yield` и `&block` + `block.call`, я попробовал структуру, в которой возвращаемое значение временно хранится в `result = ...`, а затем выводится с помощью расширения строк. Я проверил порядок вывода с вложенными вызовами и скорректировал детали вывода, такие как два пробела, чтобы убедиться, что начальное/конечное и возвращаемые значения `outer block`, `some little block` и `another block` совпадают, как и ожидалось. Затем я сделал отступы для внутренних блоков, чтобы улучшить читаемость. Для удобства я управлял глубиной с помощью глобальной переменной `$log_depth`. Обратите внимание, что неинициализированные значения равны `nil`, поэтому я инициализировал их значением `0` непосредственно перед использованием. Я подтвердил, что отступ генерируется как `indent = ' ' * $log_depth`, устанавливая его равным `+1` в начале и `-1` в конце. Это также затрагивает тот факт, что глобальные переменные склонны к сбоям во время параллельного выполнения, и альтернативный вариант создания логгера в виде класса и присвоения глубины каждому экземпляру. Это также подтверждает, что в Ruby блоки можно рассматривать как объекты («Proc») и принимать в качестве аргументов с помощью `&` и использовать с `block.call`. Это не подробное техническое объяснение, а скорее попытка углубить ваше понимание путем чтения документации, практического применения и проб и ошибок.