Değerleri depolamak için değişkenleri kullanma
Tüm programlar genellikle programın veriler üzerinde çalıştığı birçok adımdan oluşur. Tüm bu adımları çalıştırmanın bir parçası olarak, aralıklı sonuç olan verileri adlandırılmış başvuruda depolamak yaygın bir işlemdir. Daha sonra verileri okuyabilir veya işleyebilirsiniz. Adlandırılmış başvurular genellikle değişken olarak adlandırılır.
Değişkenler, bir değer bağlama
Değişkenler, kodunuzda başvurmaya devam etmek istediğiniz bir değere bağlı adlandırılmış başvurulardır. F# dilinde bir değeri bağlama olarak düşünülüyor. Bu nedenle, yaptığınız şey adlandırılmış başvuruya bir değer atamak veya bağlamaktır. Bir değeri bağlamak için, aşağıdaki kodda let
olduğu gibi, başvurunuzun adı olan anahtar sözcüğünü kullanır ve buna bir değer atarsınız:
let name = "Chris"
name
adlandırılmış başvurudur ve "Chris" ilişkili değeridir.
Bir değer bir değişkene atandıktan sonra değiştirilemez, sabittir. Aşağıdaki kod derlenmez ve "FS0027 hatası: Bu değer değiştirilebilir değil" gibi bir hata üretir.
let name = "Chris"
name <- "Luis" // not allowed
Değiştirilebilir hale getirin
Değişkenleri değiştirebilirsiniz, ancak bunları değişebilir hale getirmek istediğinize dair sinyal vermeniz gerekir. Değişken tanımınızda anahtar sözcüğünü mutable
kullanarak, aşağıdaki kodda olduğu gibi bir derleme hatası olmadan bir değeri değiştirebilirsiniz:
let mutable name = "Chris"
name <- "Luis" // this statement is now allowed
Değişken türleri
F# dilinde farklı türlerden oluşan bir aralık vardır. Türlerin çoğunun, farklı boyutlardaki sayıların ondalıklarla veya ondalık olmadan depolanmasıyla ilgili olması gerekir. Diğer türler metin dizesi veya Boole değişkenleriyle ilişkilendirilir. F# öğrenmeye başladığınızda karşılaşabileceğiniz türlerin listesi aşağıdadır.
Türü | Açıklama |
---|---|
ikili | olası değerler true veya false |
int | -2.147.483.648 ile 2.147.483.647 arası değerler. |
Dize | Unicode metni |
float, double | 64 bit kayan nokta türü. |
Tür çıkarılır
Bir değişken bildirdiğinizde, bunu türle veya tür olmadan yapabilirsiniz. Bir değişken bildirirken bir tür sağlamazsanız, F# derleyicisi değişkene atadığınız değere göre türün ne olması gerektiği konusunda en iyi tahminde bulunur. Aşağıdaki deyimleri göz önünde bulundurun:
let age = 65 // int
let PI = 3.14 // float
let name = "my name" // string
Derleyici , türlerin ne olması gerektiğini çıkarsar ve doğru olur. Ayrıca, türün ne olmasını istediğiniz konusunda daha açık olabilirsiniz. Veri atamak için, aşağıdaki kodda olduğu gibi söz dizimini variableName:<type>
kullanırsınız:
let sum:float = 0.0
Ekrana yazdırma
Genellikle ekrana yazdırabilmek istersiniz. Aşağıdakiler gibi çeşitli nedenlerle olabilir:
- Uygulama çıkışı: Uygulama bir tür hesaplama yapıyor ve çıkışı görmek istiyorsunuz.
- Hata ayıklama: Kodunuzun hatalarını ayıklamanın bir parçası olarak, neyin yanlış gittiğini anlamak için belirli bir noktada sonucun çıktısını oluşturmanız gerekebilir.
Ekrana çıkış yapmak istemenin başka nedenleri de vardır, ancak önceki iki senaryo en yaygın senaryodur.
Peki ekrana nasıl yazdırırsınız? F# dilinde kullanabileceğiniz üç farklı işlev vardır. Bunlar printf
, printfn
ve hatta Console.WriteLine
. Peki ne fark var?
printf
: Satır içi olarak yazdırılırstdout
(yeni satır karakteri olmaz).printfn
: Yeni satır karakteri eklemek içinstdout
yazdırılır.Console.WriteLine
: Bu işlev ad alanındandırSystem
ve tüm .NET dillerinde çalışır.
Şimdi farkı biliyorsunuz ama hangisini kullanmalısınız? printf
printfn
F# dilinde daha idiyotik ve tercih edilir.
Biçimlendirme
Ekrana yazdırmanın bir parçası olarak, metin ve sayıları birleştirmek isteyebilirsiniz. İsterseniz çıkışın belirli bir şekilde biçimlendirilmesi de isteyebilirsiniz; örneğin:
Konumsal bağımsız değişkenler: Biçimlendirmek için gibi konumsal bağımsız değişkenleri
String.Format("My name is {0} and I live in {1}", "Chris", "UK")
kullanan gibiString.Format
bir .NET işlevi kullanabilirsiniz.Dize ilişkilendirmesi: Değişkenleri ve metni birleştirmenin bir diğer yolu da ilişkilendirme adı verilen bir şey kullanmaktır. Bunu kullanmak için dizenin önüne bir
$
işaret eklemeniz ve köşeli ayraç{}
içeren yer tutucuları belirtmeniz gerekir. aşağıda ilişkilendirmeyi kullanma örneği verilmiştir:let name = "Luis" let company = "Microsoft" printfn $"Name: {name}, Company: {company}"
Köşeli ayraçların arasına ifadeler de ekleyebilirsiniz, örneğin:
let firstNumber = 2000 let secondNumber = 21 printfn $"The year is: {firstNumber + secondNumber}"
Dekont
İlişkilendirme kullanılarak tür denetimi yapılmaz, bu nedenle kullanımı kolay görünebilir. Her şeyi doğru bir şekilde birleştirin.
Tanımlayıcılar: Yazdırmaya çalıştığınız şeyin bir parçası olarak biçim tanımlayıcılarını da kullanabilirsiniz. Tanımlayıcıları kullanmak, F# dilinde biçimlendirmek için en yaygın kullanılan yöntemdir. Bir örnek aşağıda verilmiştir:
let name = "Chris" printf "Hi %s" name // prints: Hi Chris
Burada biçimlendiricinin
%s
ilk dizeyi değişkeniylename
karıştırmak için nasıl kullanıldığını görebilirsiniz.Dekont
%s veya %i gibi biçimlendiriciler kullandığınızda, derleyici türleri denetler. Konumsal bağımsız değişkeniniz belirttiğiniz türde değilse hata oluşturur.
Biçim tanımlayıcıları
Birçok biçim tanımlayıcısı vardır. İşte karşılaşabileceğiniz bazı şeyler.
Belirleyici | Açıklama | Örnek |
---|---|---|
%s | Dizeler ve manzarasız içerik için kullanılır | printf "Hello %s" name |
%d, %i | Ondalık tamsayı olarak biçimlendirilmiş, temel tamsayı türü imzalanmışsa imzalı | printf "Yaş: %i" 65 |
%b | Boole true veya false |
printf "Ayar açık: %b" true |
Biçimlendirme hakkında daha fazla bilgi vardır. Tüm özellikler hakkında bilgi edinmek istiyorsanız F# belgesindeki biçimlendirmeye bakın.