F # - Temel Sözdizimi
Bir F # programının temel yapısını gördünüz, bu nedenle F # programlama dilinin diğer temel yapı taşlarını anlamak kolay olacaktır.
F # cinsinden jetonlar
Bir F # programı çeşitli belirteçlerden oluşur. Bir belirteç, bir anahtar sözcük, bir tanımlayıcı, bir sabit, bir dize değişmezi veya bir sembol olabilir. F # jetonlarını iki türe ayırabiliriz -
- Keywords
- Sembol ve Operatörler
F # Anahtar Kelimeler
Aşağıdaki tablo anahtar kelimeleri ve anahtar kelimelerin kısa açıklamalarını göstermektedir. Bu anahtar kelimelerin kullanımını sonraki bölümlerde tartışacağız.
Anahtar kelime | Açıklama |
---|---|
abstract | Bildirildiği türde uygulama içermeyen veya sanal olan ve varsayılan uygulaması olan bir yöntemi gösterir. |
and | Karşılıklı özyinelemeli bağlamalarda, özellik bildirimlerinde ve genel parametrelerde birden çok kısıtlamayla kullanılır. |
as | Mevcut sınıf nesnesine bir nesne adı vermek için kullanılır. Aynı zamanda bir kalıp eşleşmesi içindeki bütün bir kalıba isim vermek için de kullanılır. |
assert | Hata ayıklama sırasında kodu doğrulamak için kullanılır. |
base | Temel sınıf nesnesinin adı olarak kullanılır. |
begin | Ayrıntılı sözdiziminde, bir kod bloğunun başlangıcını belirtir. |
class | Ayrıntılı sözdiziminde, bir sınıf tanımının başlangıcını belirtir. |
default | Soyut bir yöntemin uygulanmasını gösterir; sanal bir yöntem oluşturmak için soyut bir yöntem bildirimi ile birlikte kullanılır. |
delegate | Bir temsilci bildirmek için kullanılır. |
do | Döngü yapılarında veya zorunlu kodu yürütmek için kullanılır. |
done | Ayrıntılı sözdiziminde, döngü ifadesinde bir kod bloğunun sonunu belirtir. |
downcast | Devralma zincirinde daha düşük bir türe dönüştürmek için kullanılır. |
downto | İçinde for ifade, tersine sayarken kullanılır. |
elif | Koşullu dallanmada kullanılır. Kısa bir else if. |
else | Koşullu dallanmada kullanılır. |
end | Tür tanımlarında ve tür uzantılarında, üye tanımlarının bir bölümünün sonunu belirtir. Ayrıntılı sözdiziminde, begin anahtar sözcüğü ile başlayan bir kod bloğunun sonunu belirtmek için kullanılır. |
exception | Bir istisna türü bildirmek için kullanılır. |
extern | Bildirilen bir program öğesinin başka bir ikilide veya derlemede tanımlandığını gösterir. |
false | Boolean değişmez değeri olarak kullanılır. |
finally | Bir istisna olup olmadığına bakılmaksızın çalışan bir kod bloğu tanıtmaya çalışmakla birlikte kullanılır. |
for | Döngü yapılarında kullanılır. |
fun | Anonim işlevler olarak da bilinen lambda ifadelerinde kullanılır. |
function | Tek bir bağımsız değişken üzerinde desen eşlemesi olan bir lambda ifadesinde, fun anahtar kelimesine daha kısa bir alternatif ve bir eşleme ifadesi olarak kullanılır. |
global | En üst düzey .NET ad alanına başvurmak için kullanılır. |
if | Koşullu dallanma yapılarında kullanılır. |
in | Sıralı ifadeler için ve ayrıntılı sözdiziminde ifadeleri bağlamalardan ayırmak için kullanılır. |
inherit | Bir temel sınıf veya temel arabirim belirtmek için kullanılır. |
inline | Doğrudan arayanın koduna entegre edilmesi gereken bir işlevi belirtmek için kullanılır. |
interface | Arayüzleri bildirmek ve uygulamak için kullanılır. |
internal | Bir üyenin montajın içinde görünür olduğunu ancak dışında olmadığını belirtmek için kullanılır. |
lazy | Yalnızca bir sonuca ihtiyaç duyulduğunda gerçekleştirilecek bir hesaplamayı belirtmek için kullanılır. |
let | Bir adı bir değer veya işleve ilişkilendirmek veya bağlamak için kullanılır. |
let! | Eşzamansız iş akışlarında eşzamansız bir hesaplamanın sonucuna bir ad bağlamak için veya diğer hesaplama ifadelerinde hesaplama türündeki bir sonuca bir ad bağlamak için kullanılır. |
match | Bir değeri bir modelle karşılaştırarak dallanmak için kullanılır. |
member | Bir nesne türünde bir özelliği veya yöntemi bildirmek için kullanılır. |
module | Bir adı diğer koddan mantıksal olarak ayırmak için bir grup ilgili tür, değer ve işlevle ilişkilendirmek için kullanılır. |
mutable | Bir değişkeni, yani değiştirilebilen bir değeri bildirmek için kullanılır. |
namespace | Bir adı diğer koddan mantıksal olarak ayırmak için bir grup ilgili tür ve modülle ilişkilendirmek için kullanılır. |
new | Bir nesne oluşturan veya yaratabilen bir kurucu bildirmek, tanımlamak veya çağırmak için kullanılır. Ayrıca, bir türün belirli bir kurucuya sahip olması gerektiğini belirtmek için genel parametre kısıtlamalarında kullanılır. |
not | Aslında bir anahtar kelime değil. Ancak, kombinasyon halinde olmayan yapı, genel bir parametre kısıtlaması olarak kullanılır. |
null | Bir nesnenin olmadığını gösterir. Ayrıca genel parametre kısıtlamalarında da kullanılır. |
of | Ayrımcı sendikalarda, değer kategorilerinin türünü belirtmek için ve temsilci ve istisna bildirimlerinde kullanılır. |
open | Bir ad alanının veya modülün içeriğini nitelik olmadan kullanılabilir hale getirmek için kullanılır. |
or | Boolean veya işleç olarak Boole koşullarıyla kullanılır. || ile eşdeğerdir. Üye kısıtlamalarında da kullanılır. |
override | Temel sürümden farklı olan bir soyut veya sanal yöntemin sürümünü uygulamak için kullanılır. |
private | Aynı tür veya modülde kodlama yapmak için bir üyeye erişimi kısıtlar. |
public | Türün dışından bir üyeye erişim sağlar. |
rec | Bir işlevin özyinelemeli olduğunu belirtmek için kullanılır. |
return | Hesaplama ifadesinin sonucu olarak sağlanacak değeri belirtmek için kullanılır. |
return! | Değerlendirildiğinde, içeren hesaplama ifadesinin sonucunu sağlayan bir hesaplama ifadesini belirtmek için kullanılır. |
select | Hangi alanların veya sütunların çıkarılacağını belirtmek için sorgu ifadelerinde kullanılır. Bunun bağlamsal bir anahtar kelime olduğunu unutmayın; bu, aslında ayrılmış bir kelime olmadığı ve yalnızca uygun bağlamda bir anahtar kelime gibi davrandığı anlamına gelir. |
static | Bir türün örneği olmadan çağrılabilen bir yöntemi veya özelliği veya bir türün tüm örnekleri arasında paylaşılan bir değer üyesini belirtmek için kullanılır. |
struct | Bir yapı türünü bildirmek için kullanılır. Ayrıca genel parametre kısıtlamalarında da kullanılır. Modül tanımlarında OCaml uyumluluğu için kullanılır. |
then | Koşullu ifadelerde kullanılır. Nesne oluşturduktan sonra yan etkileri gerçekleştirmek için de kullanılır. |
to | Bir aralığı belirtmek için döngülerde kullanılır. |
true | Boolean değişmez değeri olarak kullanılır. |
try | Bir istisna oluşturabilecek bir kod bloğu tanıtmak için kullanılır. İle birlikte kullanılır ile veya nihayet. |
type | Sınıf, kayıt, yapı, ayırt edici birleşim, numaralandırma türü, ölçü birimi veya tür kısaltması bildirmek için kullanılır. |
upcast | Devralma zincirinde daha yüksek olan bir türe dönüştürmek için kullanılır. |
use | Dispose'un serbest kaynaklara çağrılmasını gerektiren değerler için let yerine kullanılır. |
use! | Let yerine kullanılır! Dispose'un serbest kaynaklara çağrılmasını gerektiren değerler için zaman uyumsuz iş akışlarında ve diğer hesaplama ifadelerinde. |
val | Sınırlı durumlarda bir değeri belirtmek için bir imzada veya bir üye bildirmek için bir türde kullanılır. |
void | .NET geçersiz türünü gösterir. Diğer .NET dilleriyle birlikte çalışırken kullanılır. |
when | Kalıp eşleşmelerinde Boole koşulları (korumalar) için ve genel bir tür parametresi için bir kısıtlama cümlesi eklemek için kullanılır. |
while | Döngü oluşturan bir yapı sunar. |
with | Model eşleme ifadelerinde eşleme anahtar kelimesi ile birlikte kullanılır. Ayrıca üye tanımlarını tanıtmak ve istisna işleyicileri tanıtmak için nesne ifadelerinde, kayıt kopyalama ifadelerinde ve tür uzantılarında kullanılır. |
yield | Bir dizi için bir değer üretmek için bir dizi ifadesinde kullanılır. |
yield! | Bir hesaplama ifadesinde, belirli bir hesaplama ifadesinin sonucunu içeren hesaplama ifadesi için bir sonuç koleksiyonuna eklemek için kullanılır. |
Bazı ayrılmış anahtar kelimeler OCaml dilinden geldi -
asr | arazi | lor | lsl | lsr | lxor | mod | sig |
Diğer bazı ayrılmış anahtar sözcükler, F # 'nin gelecekteki genişletmesi için tutulur.
atomik | kırmak | kontrol | bileşen | sabit | kısıtlama | constructor |
continue | eager | event | external | fixed | functor | include |
method | mixin | object | parallel | process | protected | pure |
sealed | tailcall | trait | virtual | volatile |
Comments in F#
F# provides two types of comments −
- One line comment starts with // symbol.
- Multi line comment starts with (* and ends with *).
A Basic Program and Application Entry Point in F#
Generally, you don’t have any explicit entry point for F# programs. When you compile an F# application, the last file provided to the compiler becomes the entry point and all top level statements in that file are executed from top to bottom.
A well-written program should have a single top-level statement that would call the main loop of the program.
A very minimalistic F# program that would display ‘Hello World’ on the screen −
(* This is a comment *)
(* Sample Hello World program using F# *)
printfn "Hello World!"
When you compile and execute the program, it yields the following output −
Hello World!