C#: Интерполяция
В уроке про конкатенацию перед нами стояла задача создать заголовок письма из двух констант и знаков препинания. Вы, скорее всего, решили задачу так:
var firstName = "Joffrey";
var greeting = "Hello";
Console.WriteLine(greeting + ", " + firstName + "!");
// => "Hello, Joffrey!"Это довольно простой случай, но даже здесь нужно приложить усилия, чтобы увидеть, какая в итоге получится строка. Нужно следить за несколькими кавычками и пробелами, и без вглядывания не понять, где что начинается и кончается.
Есть другой, более удобный и изящный способ решения той же задачи — интерполяция. Вот, как это выглядит:
var firstName = "Joffrey";
var greeting = "Hello";
// Обратите внимание на знак доллара перед началом строки
Console.WriteLine($"{greeting}, {firstName}!");
// => "Hello, Joffrey!"Мы просто создали одну строку и «вставили» в неё в нужные места другие строки с помощью знака фигурных скобок { }. Получился как будто бланк, куда внесены нужные значения. И нам не нужно больше заботиться об отдельных строках для знаков препинания и пробелов — все эти символы просто записаны в этой строке-шаблоне.
В одной строке можно делать сколько угодно подобных блоков.
Чтобы в строке начала работать интерполяция перед ее началом надо добавить знак «доллара» – $. Обратите внимание что знак стоит до открывающей кавычки, а не после неё.
Почти во всех языках интерполяция предпочтительнее конкатенации для объединения строк. Строка при этом получается склеенная, и внутри неё хорошо просматриваются пробелы и другие символы. Во-первых, интерполяция позволяет не путать строки с числами (из-за знака +), а во-вторых, так гораздо проще (после некоторой практики) понимать строку целиком.
Задание
Выведите на экран строку Do you want to eat, <name>?, где вместо <name> должна использоваться константа stark. Вывод должен получиться таким:
Do you want to eat, Arya?Полезное
C#: Интерполяция
В уроке про конкатенацию перед нами стояла задача создать заголовок письма из двух констант и знаков препинания. Вы, скорее всего, решили задачу так:
var firstName = "Joffrey";
var greeting = "Hello";
Console.WriteLine(greeting + ", " + firstName + "!");
// => "Hello, Joffrey!"Это довольно простой случай, но даже здесь нужно приложить усилия, чтобы увидеть, какая в итоге получится строка. Нужно следить за несколькими кавычками и пробелами, и без вглядывания не понять, где что начинается и кончается.
Есть другой, более удобный и изящный способ решения той же задачи — интерполяция. Вот, как это выглядит:
var firstName = "Joffrey";
var greeting = "Hello";
// Обратите внимание на знак доллара перед началом строки
Console.WriteLine($"{greeting}, {firstName}!");
// => "Hello, Joffrey!"Мы просто создали одну строку и «вставили» в неё в нужные места другие строки с помощью знака фигурных скобок { }. Получился как будто бланк, куда внесены нужные значения. И нам не нужно больше заботиться об отдельных строках для знаков препинания и пробелов — все эти символы просто записаны в этой строке-шаблоне.
В одной строке можно делать сколько угодно подобных блоков.
Чтобы в строке начала работать интерполяция перед ее началом надо добавить знак «доллара» – $. Обратите внимание что знак стоит до открывающей кавычки, а не после неё.
Почти во всех языках интерполяция предпочтительнее конкатенации для объединения строк. Строка при этом получается склеенная, и внутри неё хорошо просматриваются пробелы и другие символы. Во-первых, интерполяция позволяет не путать строки с числами (из-за знака +), а во-вторых, так гораздо проще (после некоторой практики) понимать строку целиком.
Задание
Выведите на экран строку Do you want to eat, <name>?, где вместо <name> должна использоваться константа stark. Вывод должен получиться таким:
Do you want to eat, Arya?Полезное
Ваше упражнение проверяется по этим тестам
#load "/src/Init.csx"
#load "/src/RedirectOutput.csx"
#load "Exercise.csx"
;
using PowerAssert;
var output = capturedConsoleOutput.ToString().Trim();
Console.SetOut(originalStdOut);
Console.Write(capturedConsoleOutput);
PAssert.IsTrue(() => output == "Do you want to eat, Arya?");Решение учителя откроется через:
20:00
