Skip to content

Commit

Permalink
Merge pull request #1320 from rust-lang-ru/gitlocalize-27278
Browse files Browse the repository at this point in the history
Translate ch20-01-single-threaded.md via GitLocalize
  • Loading branch information
ava57r authored Nov 27, 2023
2 parents 58aff04 + ab888b1 commit af7b6bc
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions rustbook-ru/src/ch20-01-single-threaded.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ HTTP/1.1 200 OK\r\n\r\n

<span class="caption">Листинг 20-5. Отправка содержимого <em>hello.html</em> в качестве тела ответа</span>

Мы добавили элемент `fs` в оператор `use`, чтобы включить в область видимости модуль файловой системы стандартной библиотеки. Код для чтения содержимого файла в строку должен выглядеть знакомым для вас; мы использовали его в главе 12, когда читали содержимое файла для нашего проекта ввода-вывода в листинге 12-4.
Мы добавили элемент `fs` в инструкцию `use`, чтобы включить в область видимости модуль файловой системы стандартной библиотеки. Код для чтения содержимого файла в строку должен выглядеть знакомым для вас; мы использовали его в главе 12, когда читали содержимое файла для нашего проекта ввода-вывода в листинге 12-4.

Далее мы используем `format!` чтобы добавить содержимое файла в качестве тела ответа об успешном завершении. Чтобы гарантировать действительный HTTP-ответ, мы добавляем заголовок `Content-Length` который имеет размер тела нашего ответа, в данном случае размер `hello.html` .

Expand Down Expand Up @@ -242,7 +242,7 @@ HTTP/1.1 200 OK\r\n\r\n

<span class="caption">Листинг 20-9: Рефакторинг блоков <code>if</code> и <code>else</code>, чтобы они содержали только код, который отличается для каждого из случаев</span>

Теперь блоки `if` и `else` возвращают только соответствующие значения для строки состояния и имени файла в кортеже; Затем мы используем деструктурирование, чтобы присвоить эти два значения `status_line` и `filename` используя шаблон в операторе `let`, как обсуждалось в главе 18.
Теперь блоки `if` и `else` возвращают только соответствующие значения для строки состояния и имени файла в кортеже. Затем мы используем деструктурирование, чтобы присвоить эти два значения `status_line` и `filename` используя шаблон в инструкции `let`, как обсуждалось в главе 18.

Ранее дублированный код теперь находится вне блоков `if` и `else` и использует переменные `status_line` и `filename`. Это позволяет легче увидеть разницу между этими двумя случаями и означает, что у нас есть только одно место для обновления кода, если захотим изменить работу чтения файлов и записи ответов. Поведение кода в листинге 20-9 будет таким же, как и в 20-8.

Expand Down

0 comments on commit af7b6bc

Please sign in to comment.