Строки - это последовательность символов. Например, слово, образованное с помощью английского алфавита. Строки созданы для символов. Привет - это строка, состоящая из 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
До скорого. Ваше здоровье.