Seqüências de caracteres (F#)
O string tipo representa texto imutável como uma sequência de caracteres Unicode .stringé um alias de String na.NET Framework.
Comentários
Seqüência de caracteres literais são delimitados pelo caractere de aspas (").O caractere de barra invertida (\) é usado para codificar caracteres especiais.A barra invertida e o próximo caractere junto são conhecidos como um sequência de escape.Tem suportadas no F# seqüência de caracteres literais são mostrados na tabela a seguir de seqüências de escape.
Caractere. |
sequência de escape |
---|---|
BACKSPACE |
\b |
Nova linha |
\n |
Retorno de carro |
\r |
Tab |
\t |
Barra invertida |
\\ |
Aspa |
\" |
Apóstrofo |
\' |
Caractere Unicode |
\uXXXX ou \UXXXXXXXX (onde x indica um dígito hexadecimal) |
Se precedido do símbolo@ literal é uma seqüência de caracteres verbatim.Isso significa que as seqüências de escape são ignoradas, exceto pelo fato de dois caracteres de aspas serão interpretadas como aspas de um caractere.
Além disso, uma seqüência de caracteres pode ser delimitada por aspas triplo.Neste maiúsculas e minúsculas, todas as seqüências de escape são ignoradas, incluindo caracteres de aspas duplas.Para especificar uma seqüência de caracteres que contém um incorporado seqüência entre aspas, você pode usar uma cadeia de caracteres verbatim ou uma seqüência de caracteres entre aspas triplo.Se você usar uma cadeia de caracteres verbatim, você deve especificar dois caracteres de aspas para indicar um caractere de aspas simples.Se você usar uma seqüência de caracteres entre aspas três vezes, você pode usar os caracteres de aspas simples sem eles sendo analisada como o final da seqüência de caracteres.Essa técnica pode ser útil ao trabalhar com XML ou outras estruturas que incluem as aspas internas.
// Using a verbatim string
let xmlFragment1 = @"<book author=""Milton, John"" title=""Paradise Lost"">"
// Using a triple-quoted string
let xmlFragment2 = """<book author="Milton, John" title="Paradise Lost">"""
No código, seqüências de caracteres com quebras de linha são aceitas e as quebras de linha são interpretadas literalmente como novas linhas, a menos que um caractere de barra invertida é o último caractere antes da quebra de linha .Espaço em branco na próxima linha é ignorado quando o caractere barra invertida é usado.O código a seguir produz uma cadeia de caracteres str1 que possui o valor "abc\n def" e uma seqüência de caracteres str2 que possui o valor "abcdef".
let str1 = "abc
def"
let str2 = "abc\
def"
Você pode acessar caracteres individuais em uma seqüência de caracteres usando sintaxe semelhante à matriz, da seguinte maneira.
printfn "%c" str1.[1]
A saída é b.
Ou você pode extrair substrings usando a sintaxe da fatia de matriz, como mostrado no código a seguir.
printfn "%s" (str1.[0..2])
printfn "%s" (str2.[3..5])
A saída é da seguinte maneira.
abc
def
Você pode representar as seqüências ASCII pelas matrizes de bytes não assinados, o tipo de byte[].Você adiciona o sufixo B para uma seqüência de caracteres literal para indicar que ela é uma seqüência de caracteres ASCII.Literais de seqüência de caracteres ASCII usados com matrizes de byte suportam as mesmas seqüências de escape como seqüências de caracteres Unicode , exceto para as seqüências de escape do Unicode .
// "abc" interpreted as a Unicode string.
let str1 : string = "abc"
// "abc" interpreted as an ASCII byte array.
let bytearray : byte[] = "abc"B
Operadores de seqüência de caracteres
Para concatenar cadeias de caracteres de duas maneiras: usando o + operador ou usando o ^ operador. O + operador mantém compatibilidade com o.NET Framework de seqüência de caracteres recursos de tratamento.
O exemplo a seguir ilustra a concatenação de seqüência de caracteres.
let string1 = "Hello, " + "world"
Classe String
Porque o tipo de seqüência de caracteres em F# é realmente um.NET Framework String digitar todo o String os membros estão disponíveis. Isso inclui o + operador, que é usado para concatenar cadeias de caracteres, o Lengthde propriedadee o Chars propriedade, que retorna a seqüência de caracteres como uma matriz de caracteres Unicode . Para obter mais informações sobre seqüências de caracteres, consulte String.
Usando o Charsa propriedade do String, você pode acessar os caracteres individuais em uma seqüência de caracteres especificando um índice, como é mostrado no código a seguir.
let printChar (str : string) (index : int) =
printfn "First character: %c" (str.Chars(index))
Módulo de seqüência de caracteres
Funcionalidade adicional para manipulação de seqüência de caracteres está incluída na Stringo módulo na FSharp.Core namespace. Para mais informações, consulte Módulo de Core.String (F#).