Megosztás a következőn keresztül:


Sztringek

A string típus a nem módosítható szöveget Unicode-karakterek sorozataként jelöli. string a .NET aliasa System.String .

Megjegyzések

A sztringkonstansokat az idézőjel (") karakter elválasztja. A fordított perjel karakter (\ ) bizonyos speciális karakterek kódolására szolgál. A fordított perjelet és a következő karaktert együtt menekülési sorozatnak nevezzük. Az F# sztringkonstansokban támogatott feloldósorozatok az alábbi táblázatban láthatók.

Karakter Menekülési sorozat
Riasztás \a
Backspace \b
Űrlapcsatorna \f
Newline \n
Kocsivissza \r
Lap \t
Függőleges lap \v
Fordított perjel \\
Idézőjel \"
Aposztróf \'
Unicode-karakter \DDD (ahol D tizedesjegyet jelöl; tartománya 000 – 255; például \231 = "ç")
Unicode-karakter \xHH (ahol H hexadecimális számjegyet jelöl; tartománya 00 - FF; például \xE7 = "ç")
Unicode-karakter \uHHHH (UTF-16) (ahol H hexadecimális számjegyet jelöl; tartománya 0000 - FFFF; például \u00E7 = "ç")
Unicode-karakter \U00HHHHHH (UTF-32) (ahol H hexadecimális számjegyet jelöl; tartománya 0000000 - 10FFFF; például \U0001F47D = "👽")

Fontos

A \DDD feloldósorozat tizedesjel, nem oktális jelölés, mint a legtöbb más nyelven. Ezért a számjegyek 8 és 9 az érvényesek, valamint a szóközök sorozata \032 (U+0020), míg ugyanez a kódpont az oktális jelölésben .\040

Feljegyzés

Mivel 0 és 255 közötti tartományra van korlátozva (0xFF), a feloldó és \x a \DDD feloldó sorozat gyakorlatilag az ISO-8859-1 karakterkészlet, mivel ez megfelel az első 256 Unicode-kódpontnak.

Verbatim sztringek

Ha a @ szimbólum előtt a literál szó szerinti sztring. A szó szerinti sztring deklarálása azt jelenti, hogy a rendszer figyelmen kívül hagyja a feloldósorozatokat, azzal a kivétellel, hogy két idézőjel karaktert egyetlen idézőjel karakterként értelmez.

Három idézett sztring

Emellett egy sztringet három idézőjel is tartalmazhat. Ebben az esetben a rendszer figyelmen kívül hagyja az összes feloldósorozatot, beleértve a kettős idézőjelek karaktereit is. Beágyazott idézőjeles sztringet tartalmazó sztring megadásához használhat szó szerinti vagy három idézőjeles sztringet. Ha szó szerinti sztringet használ, két idézőjel karaktert kell megadnia, hogy egyetlen idézőjel karaktert jelöljön. Ha három idézőjeles sztringet használ, az idézőjelek karaktereit anélkül használhatja, hogy azok a sztring végének minősülnek. Ez a technika akkor lehet hasznos, ha beágyazott idézőjeleket tartalmazó XML- vagy más struktúrákkal dolgozik.

// 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">"""

A kódban a sortöréseket tartalmazó sztringek elfogadottak, a sortörések pedig a forrásban használt újvonalas kódolásként lesznek értelmezve, kivéve, ha a fordított perjel karakter az utolsó karakter a sortörés előtt. A következő sorban lévő kezdő szóköz figyelmen kívül lesz hagyva a fordított perjel karakter használatakor. Az alábbi kód egy értéket tartalmazó sztringet str1 és egy értéket "abcdef"tartalmazó sztringet str2 hoz létre."abc\ndef"

let str1 =
    "abc
def"

let str2 =
    "abc\
def"

Sztringindexelés és szeletelés

A sztring egyes karaktereit tömbszerű szintaxissal érheti el. Az alábbi példák sztringek indexelésére használhatók [] . Ez a szintaxis az F# 6.0-ban lett bevezetve. A sztringek indexelésére is használható .[] minden verzióban. Előnyben részesíti az új szintaxist.

printfn "%c" str1[1]

A kimenet a következő: b.

Az alsztringeket a tömbszelet szintaxisával is kinyerheti, ahogyan az az alábbi kódban is látható.

printfn "%s" str1[0..2]
printfn "%s" str2[3..5]

A kimenet a következő.

abc
def

AsCII-sztringeket jelölhet aláíratlan bájtok tömbje alapján, írja be a következőt byte[]: . Adja hozzá az utótagot B egy sztringkonstanshoz, amely azt jelzi, hogy az ASCII-sztring. A bájttömbökkel használt ASCII-sztringkonstansok ugyanazokat a feloldósorozatokat támogatják, mint a Unicode-sztringek, kivéve a Unicode-feloldási sorozatokat.

// "abc" interpreted as a Unicode string.
let str1: string = "abc"
// "abc" interpreted as an ASCII byte array.
let bytearray: byte[] = "abc"B

Sztring operátorok

Az + operátor sztringek összefűzésére használható, így a .NET-keretrendszer sztringkezelési funkciókkal való kompatibilitás megmarad. Az alábbi példa a sztringösszefűzést szemlélteti.

let string1 = "Hello, " + "world"

Sztringosztály

Mivel az F# sztringtípusa valójában .NET-keretrendszer System.String típus, az System.String összes tag elérhető. System.String Tartalmazza a + karakterláncok összefűzésére használt operátort, a Length tulajdonságot és a Chars tulajdonságot, amely Unicode-karakterek tömbjeként adja vissza a sztringet. További információ a sztringekről: System.String.

A tulajdonság System.Stringhasználatával Chars egy index megadásával érheti el a sztring egyes karaktereit, ahogyan az az alábbi kódban is látható.

let printChar (str: string) (index: int) =
    printfn "First character: %c" (str.Chars(index))

Sztringmodul

A sztringkezelés további funkcióit a String névtér modulja FSharp.Core tartalmazza. További információ: Sztringmodul.

Lásd még