Değerler

F# içinde değerler belirli bir türe sahip miktarlardır; değerler tamsayı veya kayan nokta sayıları, karakterler veya metin, listeler, diziler, diziler,uples, ayrımlı birleştiriciler, kayıtlar, sınıf türleri veya işlev değerleri olabilir.

Değer Bağlama

Bağlama terimi, bir adı bir tanımla bağlama anlamına gelir. Anahtar let sözcüğü, aşağıdaki örneklerde olduğu gibi bir değer bağlar:

let a = 1
let b = 100u
let str = "text"

// A function value binding.

let f x = x + 1

Bir değerin türü tanımdan alıtır. İntegral veya kayan nokta numarası gibi bir temel tür için, tür sabitin türünden belirlenir. Bu nedenle, önceki örnekte, derleyici türü olarak çıkartırken, derleyici türü olarak b unsigned int a int çıkartır. İşlev değerinin türü, işlev gövdesinin dönüş değerinden belirlenir. İşlev değeri türleri hakkında daha fazla bilgi için bkz. İşlevler. Değişmez türler hakkında daha fazla bilgi için bkz. Değişmez bilgiler.

Derleyici varsayılan olarak kullanılmayan bağlamalar hakkında tanılamalar derlemez. Bu iletileri almak için proje dosyanız veya derleyiciyi etkinleştirirken (bkz. Derleyici Seçenekleri altında) uyarı 1182'yi --warnon etkinleştirin.

Neden Sabit?

Sabit değerler, bir programın yürütülmesi sırasında değiştirilene değerlerdir. C++, Visual Basic veya C# gibi dillere alışıyorsanız, F# dilinin program yürütme sırasında yeni değerler atanabilir değişkenler yerine sabit değerlere öncelik ataması şaşırtıcı olabilir. Sabit veriler, işlevsel programlamanın önemli bir öğesidir. Çok iş parçacıklı bir ortamda, birçok farklı iş parçacığı tarafından değiştirilen paylaşılan değiştirilebilir değişkenleri yönetmek zordur. Ayrıca, değiştirilebilir değişkenlerle, başka bir işleve geçirilen bir değişkenin değiştirilep değiştirilenemdiğini söylemek zor olabilir.

Saf işlevsel dillerde değişken yoktur ve işlevler kesinlikle matematiksel işlevler olarak davranır. Bir yordam dilindeki kod bir değeri değiştirmek için değişken ataması kullandığında, işlev dilindeki eşdeğer kod giriş, sabit işlev ve çıkış olarak farklı sabit değerlere sahiptir. Bu matematiksel katılık, programın davranışı hakkında daha sıkı bir gerekçeye olanak sağlar. Bu daha sıkı gerekçe, derleyicilerin kodu daha sıkı bir şekilde denetlemesini ve daha etkili bir şekilde iyileştirmesini ve geliştiricilerin doğru kodu anlamalarını ve yazmalarını kolaylaştırmanızı sağlar. Bu nedenle işlevsel kodun hata ayıklaması sıradan yordam kodundan daha kolay olacaktır.

F# saf işlevsel bir dil değildir, ancak işlevsel programlamayı tam olarak destekler. Bunu yapmak kodunuzun işlevsel programlamanın önemli bir özelliğinden yararlanması için sabit değerleri kullanmak iyi bir uygulamadır.

Tarifeli Değişkenler

Değiştirilebilir bir değişken mutable belirtmek için anahtar sözcüğünü kullanabilirsiniz. F# içinde değişkenli değişkenlerin genellikle sınırlı bir kapsamı olması gerekir( bir tür alanı olarak veya yerel bir değer olarak). Sınırlı kapsamı olan değiştirilebilir değişkenlerin denetimi daha kolaydır ve yanlış yollarla değiştirilme olasılığı daha düşük olur.

Anahtar sözcüğünü bir değer tanımladığınız gibi kullanarak değişkene let bir başlangıç değeri atabilirsiniz. Ancak, aradaki fark, aşağıdaki örnekte olduğu gibi işleci kullanarak daha sonra değişebilir <- değişkenlere yeni değerler atayarak gerçekleştirebilirsiniz.

let mutable x = 1
x <- x + 1

İşaretlenen değerler, oluşturucular gibi kapanış oluşturan formlar da dahil olmak üzere kapanış tarafından mutable 'a ref yakalanıyorsa otomatik olarak seq yükseltilir. Bu durum oluştuğunda size bildirilecekse proje dosyanız veya derleyiciyi iptal etmek için uyarı 3180'i etkinleştirin.

Başlık Açıklama
let Bağlamaları Adları değerlere ve let işlevlere bağlamak için anahtar sözcüğünü kullanma hakkında bilgi sağlar.
İşlevler F# ile işlevlere genel bir bakış sağlar.

Ayrıca bkz.