F # - Yapılar
F #'daki bir yapı, bir değer türü veri türüdür. Tek bir değişken oluşturmanıza, çeşitli veri türleriyle ilgili verileri tutmanıza yardımcı olur. struct anahtar kelime, bir yapı oluşturmak için kullanılır.
Sözdizimi
Bir yapıyı tanımlamak için sözdizimi aşağıdaki gibidir -
[ attributes ]
type [accessibility-modifier] type-name =
struct
type-definition-elements
end
// or
[ attributes ]
[<StructAttribute>]
type [accessibility-modifier] type-name =
type-definition-elements
İki sözdizimi vardır. İlk sözdizimi çoğunlukla kullanılır, çünküstruct ve end anahtar kelimeleri atlayabilirsiniz. StructAttribute öznitelik.
Yapı tanımlama öğeleri şunları sağlar:
- Üye beyanları ve tanımları.
- Oluşturucular ve değiştirilebilir ve değişmez alanlar.
- Üyeler ve arayüz uygulamaları.
Sınıflardan farklı olarak, yapılar miras alınamaz ve let veya do bağları içeremez. Yapılar izinli bağlara sahip olmadığından; yapılarda alanları bildirmek zorundasınız.val anahtar kelime.
Bir alanı ve türünü kullanarak tanımladığınızda valanahtar kelime, alan değerini başlatamazsınız, bunun yerine sıfır veya null olarak başlatılırlar. Örtük bir kurucuya sahip bir yapı için,val beyannameler ile açıklanacak DefaultValue öznitelik.
Misal
Aşağıdaki program, bir kurucu ile birlikte bir çizgi yapısı oluşturur. Program, yapıyı kullanarak bir çizginin uzunluğunu hesaplar -
type Line = struct
val X1 : float
val Y1 : float
val X2 : float
val Y2 : float
new (x1, y1, x2, y2) =
{X1 = x1; Y1 = y1; X2 = x2; Y2 = y2;}
end
let calcLength(a : Line)=
let sqr a = a * a
sqrt(sqr(a.X1 - a.X2) + sqr(a.Y1 - a.Y2) )
let aLine = new Line(1.0, 1.0, 4.0, 5.0)
let length = calcLength aLine
printfn "Length of the Line: %g " length
Programı derleyip çalıştırdığınızda, aşağıdaki çıktıyı verir -
Length of the Line: 5