Улучшение разделителей строковых литералов для поддержки необработанного текста Swift

#string #delimiter #swift5 #rawstring

#строка #разделитель #swift5 #rawstring

Вопрос:

Недавно я нашел эти фрагменты кода в книге Swift 5.

 print(#"Write an interpolated string in Swift using (multiplier)."#)
// Prints "Write an interpolated string in Swift using (multiplier).”

print(#"6 times 7 is #(6 * 7)."#)
// Prints "6 times 7 is 42.”
 

Я узнал, что в Swift 5 было принято предложение по улучшению разделителей строковых литералов для поддержки необработанного текста, с таким количеством приведенных примеров.

Мой вопрос в том, когда и как он используется в практических случаях, потому что из приведенных выше примеров я бы все равно четко достиг того, чего хочу, даже без # знаков!

Ответ №1:

Приведу только один пример, где это очень полезно. Как насчет написания регулярных выражений, раньше это был кошмар, так как вам приходилось экранировать все специальные символы. Например.

 let regex1 = "\\[A-Z] [A-Za-z] \.[a-z] "
 

Теперь можно заменить на

 let regex2 = #"\[A-Z] [A-Za-z] .[a-z] "#
 

Намного проще писать. Теперь, когда вы находите регулярное выражение в Интернете, вы можете просто скопировать и вставить его, не тратя целую вечность на экранирование специальных символов.

Редактировать:

Можно прочитать здесь

https://www.hackingwithswift.com/articles/162/how-to-use-raw-strings-in-swift