Строки - это последовательность символов. Например, слово, образованное с помощью английского алфавита. Строки созданы для символов. Привет - это строка, состоящая из 5 символов. Для компьютеров символы в строке должны быть закодированы, чтобы хранить их или манипулировать ими. ASCII - одна из таких кодировок. Юникод - другое. Unicode имеет широкий охват символов и, таким образом, помогает хранить строки, состоящие из символов другого языка или знаков. В предыдущих примерах мы использовали строки. Строки F # - это строки Unicode.

Откройте Program.fs из проекта F #, который вы создали в прошлый раз. Посмотреть этот пост здесь. Измените основную функцию на приведенную ниже.

let main argv =
 let s = "F# is cool"
 printfn "%s" s

Что мы здесь сделали, так это то, что мы создали строку «F # это круто» и связали ее с s. Затем мы печатаем s на консоли. Если вы раньше программировали на C, вы могли бы заметить, что форматирование текста аналогично форматированию текста на C. В предыдущем примере мы видели, что напечатали «Hello». Здесь мы хотим вывести s, строкового типа. % s - заполнитель для строки. Итак, printfn знает, что он должен заменить его строкой. Мы передаем строковое значение в качестве следующего аргумента функции printfn. Поэтому, когда у вас есть % s в кавычках после printfn, он ожидает строку в качестве другого аргумента. Это означает, что если мы передадим что-то еще, кроме строки, она может сломаться. Давай проверим.

let main argv =
 let s = "F# is cool"
 let num = 10
 printfn "%s" num
 0

Здесь я создал целое число и передал его в качестве аргумента функции printfn, когда она ожидает строку. Запустите и проверьте, что происходит! Компиляция не выполняется, компилятор ворчит и отправляет вам ошибку компиляции, говоря, что он ожидал строку.

Что, если вы хотите напечатать и s, и num? Вам нужно будет это сделать

printfn "%s and I have %d beers" s num

Это печатает F # - это круто, и у меня есть 10 бутылок пива. Обратите внимание, что % d - это заполнитель для целых чисел. Мы хотим, чтобы сначала отображалось % s, а затем % d, отсюда и порядок s и num. Это краткое введение в струнные. Посмотрите официальный справочник по языку F # для строки здесь.

Строковые манипуляции

Мы знаем, что строки - это последовательность символов. Каждому символу в последовательности присваивается номер позиции. Номера позиций начинаются с 0. Этот номер позиции часто называют индексом.

Итак, используя тот же пример, что и выше

printfn "%s" s.[0..4]

Это печатает F # is. Каждый тип связан со своим набором поведения. Вы можете получить доступ к этому поведению с помощью оператора точки. Вы заметили, что здесь мы используем оператор точки после s и используем квадратные скобки. Это означает, что мы манипулируем последовательностью. Квадратные скобки в программировании обычно используются для последовательностей, например массивы. Итак, здесь мы говорим, что внутри последовательности берите только символы от 0 до 4. Подсчитайте номера позиций, начиная с 0, в вашей строке. Это будет результат F # is. В результате получается 5 символов. Считаем от 0 до 4. Обратите внимание, что пробел между # и i также является символом.

Здесь мы увидим, как объединить в строки. Это как сложение двух чисел.

let main argv =
 let s = "F# is cool"
 let superlative = "est"
 let phrase = s + superlative + " language"
 let num = 10
 printfn "%s and I have %d beers" phrase num
 0

До скорого. Ваше здоровье.