Dizeler
Tür string sabit metni Unicode karakter dizisi olarak temsil eder. string , System.String .NET'te için bir diğer addır.
Açıklamalar
Dize değişmez karakterleri tırnak işareti (") karakteriyle ayrılmıştır. Ters eğik çizgi karakteri ( \ ) belirli özel karakterleri kodlamak için kullanılır. Ters eğik çizgi ve sonraki karakter birlikte kaçış dizisi olarak bilinir. F# dize değişmez değerlerde desteklenen kaçış dizileri aşağıdaki tabloda gösterilmiştir.
| Karakter | Kaçış dizisi |
|---|---|
| Uyarı | \a |
| Geri Al tuşu | \b |
| Form akışı | \f |
| Newline | \n |
| Satır başı | \r |
| Tab | \t |
| Dikey sekme | \v |
| Ters eğik çizgi | \\ |
| Tırnak işareti | \" |
| Kesme işareti | \' |
| Unicode karakter | \DDD (burada D ondalık basamak gösterir; 000 - 255 aralığı; \231 örneğin, = "ç") |
| Unicode karakter | \xHH (burada H onaltılık basamak gösterir; 00 - FF aralığı; örneğin, \xE7 = "ç") |
| Unicode karakter | \uHHHH (UTF-16) (burada H onaltılık bir basamak gösterir; 0000 - FFFF aralığı; örneğin, \u00E7 = "ç") |
| Unicode karakter | \U00HHHHHH (UTF-32) (burada H onaltılık bir basamak gösterir; 0000000 - 10FFFF aralığı; örneğin, \U0001F47D = " 👽 ") |
Önemli
Kaçış \DDD dizisi, diğer dillerin çoğunda olduğu gibi sekizli bir nota değil ondalık basamaktır. Bu nedenle, basamaklar ve geçerlidir ve dizisi bir boşluğu 8 9 \032 (U+0020) temsil ederken, sekizli notasyonda aynı kod noktası \040 olur.
Not
0 - 255 (0xFF) aralığında kısıtlanmış olan ve kaçış dizileri ilk 256 Unicode kod noktasıyla eş değere sahip olduğu için \DDD \x ISO-8859-1 karakter kümesidir.
Ayrıntılı Dizeler
Önünde @ simgesi varsa değişmez değeri bir tam dizedir. Bu, iki tırnak işareti karakterinin tek tırnak işareti karakteri olarak yorumlanması dışında tüm kaçış dizileri yoksayılır.
Üçlü TırnakLı Dizeler
Ayrıca, bir dize üç tırnak içine alınmış olabilir. Bu durumda, çift tırnak işareti karakterleri dahil olmak üzere tüm kaçış dizileri yoksayılır. Tırnak içine eklenmiş dize içeren bir dize belirtmek için, bir tam dize veya üç tırnaklı dize kullanabilirsiniz. Bir metin dizesi kullanıyorsanız, tek tırnak işareti karakterini belirtmek için iki tırnak işareti karakteri belirtmeniz gerekir. Üçlü tırnak işareti içeren bir dize kullanırsanız, tek tırnak işareti karakterlerini dizenin sonu olarak ayrıştırmadan kullanabilirsiniz. Bu teknik, XML veya ekli tırnak işaretleri içeren diğer yapılarla birlikte çalışıyorken yararlı olabilir.
// 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">"""
Kodda, satır sonları olan dizeler kabul edilir ve ters eğik çizgi karakteri, satır sonundan önceki son karakter olmadığı sürece satır sonları anlamıyla yeni satırlar olarak yorumlanır. Ters eğik çizgi karakteri kullanılırken bir sonraki satırda baştaki boşluk yoksayılır. Aşağıdaki kod, değerine str1 ve "abc\ndef" değerine sahip bir dize str2 "abcdef" üretir.
let str1 = "abc
def"
let str2 = "abc\
def"
Dize Dizini Oluşturma ve Slicing
Aşağıdaki gibi diziye benzer söz dizimi kullanarak bir dizedeki tek tek karakterlere erişebilirsiniz.
printfn "%c" str1[1]
Çıktı b olur.
Veya aşağıdaki kodda gösterildiği gibi dizi dilimi söz dizimi kullanarak alt dizeleri ayıkabilirsiniz.
printfn "%s" str1[0..2]
printfn "%s" str2[3..5]
Çıktı aşağıdaki gibidir:
abc
def
ASCII dizelerini imzalanmamış bayt dizileri ile temsil edersiniz, byte[] yazın. Bir B ASCII dizesi olduğunu belirtmek için dize değişmez değerine soneki eklersiniz. Byte dizileriyle kullanılan ASCII dize sabitleri, Unicode kaçış dizileri dışında Unicode dizeleriyle aynı kaçış dizilerini destekler.
// "abc" interpreted as a Unicode string.
let str1 : string = "abc"
// "abc" interpreted as an ASCII byte array.
let bytearray : byte[] = "abc"B
Dize İşleçleri
+işleci, dizeleri biriktir ve dize işleme özellikleriyle .NET Framework korumak için kullanılabilir. Aşağıdaki örnek dize birlemsini göstermektedir.
let string1 = "Hello, " + "world"
Dize Sınıfı
F# içinde dize türü aslında bir .NET Framework System.String olduğundan, tüm System.String üyeler kullanılabilir. Dizeleri, özelliği ve dizeyi Unicode karakter dizisi olarak döndüren özelliğini bir bütün olarak ifade etmek için kullanılan + Length Chars işleci içerir. Dizeler hakkında daha fazla bilgi için System.String bkz. .
özelliğini kullanarak, aşağıdaki kodda gösterildiği gibi bir dizin belirterek dizedeki Chars System.String tek tek karakterlere erişebilirsiniz.
let printChar (str : string) (index : int) =
printfn "First character: %c" (str.Chars(index))
Dize Modülü
Dize işlemeye ek işlevler ad alanı String modülüne FSharp.Core dahil edilir. Daha fazla bilgi için bkz. Dize Modülü.