Dizeler

Türü sabit string metni Unicode karakter dizisi olarak temsil eder. string , .NET'te için System.String bir diğer addır.

Açıklamalar

Dize değişmez değerleri tırnak işareti (") karakteriyle sınırlandırılır. Belirli özel karakterleri kodlamak için ters eğik çizgi karakteri ( \ ) kullanılır. Ters eğik çizgi ve sonraki karakter birlikte kaçış dizisi olarak bilinir. F# dize değişmez değerlerinde 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
Sekme \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ığı; örneğin, \231 = "ç")
Unicode karakter \xHH (burada H onaltılık bir 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; aralık 000000 - 10FFFF; örneğin, \U0001F47D = "👽")

Önemli

Kaçış \DDD dizisi, diğer dillerin çoğunda olduğu gibi sekizli gösterimi değil ondalık gösterimidir. Bu nedenle, basamaklar 8 ve 9 geçerli ve dizisi \032 bir boşluğu (U+0020) temsil ederken, sekizlik gösteriminde aynı kod noktası olacaktır \040.

Not

0 - 255 (0xFF) \DDD aralığında kısıtlanan ve \x kaçış dizileri, ilk 256 Unicode kod noktasıyla eşleştiğinden , etkili bir şekilde ISO-8859-1 karakter kümesidir.

Düz Metin Dizeleri

Önünde @ simgesi varsa, değişmez değer bir düz metin dizesidir. Tamsayı dizesini bildirmek, iki tırnak işareti karakterinin tek tırnak işareti karakteri olarak yorumlanması dışında tüm kaçış dizilerinin yoksayıldığı anlamına gelir.

Üç Tırnak İşaretli Dizeler

Ayrıca, bir dize üç tırnak içine alınmış olabilir. Bu durumda, çift tırnak işareti karakterleri de dahil olmak üzere tüm kaçış dizileri yoksayılır. Katıştırılmış bir tırnak içine alınmış dize içeren bir dize belirtmek için, ayrıntılı bir dize veya üç tırnaklı bir dize kullanabilirsiniz. Ayrıntılı bir dize kullanıyorsanız, tek bir tırnak işareti karakterini belirtmek için iki tırnak işareti karakteri belirtmeniz gerekir. Üç tırnaklı bir dize kullanıyorsanız, tek tırnak işareti karakterlerini dizenin sonu olarak ayrıştırılmadan kullanabilirsiniz. Bu teknik, XML veya katıştırılmış tırnak işaretleri içeren diğer yapılarla çalışırken 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 satır sonları, satır sonundan önceki son karakter ters eğik çizgi karakteri olmadığı sürece kaynakta kullanılan yeni satır kodlaması olarak yorumlanır. Ters eğik çizgi karakteri kullanıldığında, sonraki satırdaki baştaki boşluk yoksayılır. Aşağıdaki kod değeri olan bir dize str1 ve değeri "abc\ndef" olan "abcdef"bir dize str2 oluşturur.

let str1 =
    "abc
def"

let str2 =
    "abc\
def"

Dize Dizin oluşturma ve Dilimleme

Dizi benzeri söz dizimini kullanarak bir dizedeki tek tek karakterlere erişebilirsiniz. Aşağıdaki örnekler dizeleri dizine almak için kullanılır [] . Bu söz dizimi F# 6.0'da kullanıma sunulmuştur. Tüm sürümlerdeki dizeleri dizine almak için de kullanabilirsiniz .[] . Yeni söz dizimi tercih edilir.

printfn "%c" str1[1]

Çıkış b olur.

Alternatif olarak, aşağıdaki kodda gösterildiği gibi dizi dilimi söz dizimini kullanarak alt dizeleri ayıklayabilirsiniz.

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

Çıktı aşağıdaki gibidir:

abc
def

ASCII dizelerini işaretsiz bayt dizilerine göre temsil edebilirsiniz, yazın byte[]. Bunun bir ASCII dizesi olduğunu belirtmek için son eki B bir dize değişmez değerine eklersiniz. Bayt dizileriyle kullanılan ASCII dize değişmez değerleri, 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, .NET Framework dize işleme özellikleriyle uyumluluğu koruyarak dizeleri birleştirmek için kullanılabilir. Aşağıdaki örnekte dize birleştirme gösterilmektedir.

let string1 = "Hello, " + "world"

Dize Sınıfı

F# dilindeki dize türü aslında bir .NET Framework System.String türü olduğundan, tüm System.String üyeler kullanılabilir. System.Stringdizeleri+, özelliği ve Chars dizeyi Length Unicode karakter dizisi olarak döndüren özelliği birleştirmek için kullanılan işlecini içerir. Dizeler hakkında daha fazla bilgi için bkz System.String. .

özelliğini System.StringkullanarakChars, aşağıdaki kodda gösterildiği gibi bir dizin belirterek bir dizedeki tek tek karakterlere erişebilirsiniz.

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

Dize Modülü

Ad alanında modülde StringFSharp.Core dize işlemeye yönelik ek işlevler bulunur. Daha fazla bilgi için bkz . Dize Modülü.

Ayrıca bkz.