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