İçeriğe geç
parazade

Kapsam Ne Demek?

İngilizce: Scope

Yayın: · Son güncelleme:

Kapsam Ne Demek? Kısaca

Kapsam (scope), programlamada bir değişkenin, fonksiyonun ya da adın kodun hangi bölümünden görülebileceğini ve kullanılabileceğini belirleyen kurallar bütünüdür. Global, fonksiyon ve blok kapsamı en yaygın türlerdir.

Kapsam nedir?
İçindekiler
  1. Kapsam ne demek?
  2. Hangi türleri var?
  3. Sözcüksel kapsam nasıl çalışır?

Kapsam ne demek?

Kapsam, bir adın geçerli olduğu kod alanıdır. Bir değişkeni tanımladığınızda dil, onun nereden okunabileceğini ve nerede ortadan kalkacağını kapsam kurallarına göre belirler. Kapsam dışından bir değişkene erişmeye çalışmak "tanımlı değil" hatasıyla sonuçlanır.

İngilizcede scope olarak geçer. Türkçe kaynaklarda "etki alanı" ya da "görünürlük alanı" ifadeleri de kullanılır.

Hangi türleri var?

Çoğu dilde üç seviye vardır:

Tür Nerede geçerli Örnek
Global Programın tamamında Dosyanın en üstündeki ayar
Fonksiyon Yalnız o fonksiyonda Hesaplama içindeki ara toplam
Blok Yalnız süslü parantez içinde JavaScript'te if içindeki let

Python'da blok kapsamı yoktur. Bir for döngüsünde tanımlanan değişken döngü bittikten sonra da kullanılabilir. JavaScript'te let ve const ile tanımlanan değişken ise döngünün dışına taşmaz.

Sözcüksel kapsam nasıl çalışır?

Modern dillerin çoğu sözcüksel (lexical) kapsam kullanır: bir fonksiyon, kodda yazıldığı yerin çevresindeki değişkenleri görür. Bir değişken aranırken önce en içteki kapsama, sonra dıştaki kapsamlara bakılır. Bulunamazsa hata verilir.

Bu kural closure yapısının temelidir. Varsayımsal bir sayaç fonksiyonu, kendisini oluşturan fonksiyon bittikten sonra bile oradaki sayac değişkenini hatırlar. Kapsamı iyi anlamak, değeri "kaybolan" ya da beklenmedik biçimde değişen değişken hatalarını hızla çözmenizi sağlar.

Sıkça Sorulan Sorular

Scope nedir, kapsam ile aynı şey mi?

Evet, scope kavramının Türkçe karşılığı kapsamdır. Bir adın kodun hangi bölümünde tanımlı ve erişilebilir olduğunu ifade eder.

JavaScript'te var ile let arasındaki kapsam farkı nedir?

var ile tanımlanan değişken fonksiyon kapsamlıdır, if veya for bloğunun dışından da görülebilir. let ve const ise blok kapsamlıdır, yalnız tanımlandıkları süslü parantez içinde geçerlidir.

İlgili terimler

Global Değişken(Global Variable)Global değişken, bir programda herhangi bir fonksiyonun içinde değil en dış seviyede tanımlanan ve programın her yerinden okunabilen değişkendir. Kolaylık sağlar ama kontrolsüz değiştirildiğinde hata bulmayı zorlaştırır.Yerel Değişken(Local Variable)Yerel değişken (local variable), bir fonksiyon ya da kod bloğu içinde tanımlanan ve yalnız o bölümde kullanılabilen değişkendir. Fonksiyon bittiğinde bellekten silinir, dışarıdan erişilemez.ClosureClosure, bir fonksiyonun tanımlandığı ortamdaki değişkenleri, o ortam sona erdikten sonra da hatırlayıp kullanabilmesidir. Türkçede kapanım olarak da geçer ve özellikle JavaScript'te sık karşılaşılır.NamespaceNamespace (ad alanı), fonksiyon, sınıf ve değişken adlarını mantıksal gruplar altında toplayarak farklı kütüphanelerdeki aynı adların birbiriyle çakışmasını önleyen yapıdır. C++, C#, PHP ve Python gibi dillerde kullanılır.Fonksiyon(Function)Fonksiyon, programlamada belirli bir işi yapan, isim verilmiş ve gerektiğinde tekrar tekrar çağrılabilen kod bloğudur. Girdi olarak parametre alabilir ve geriye bir değer döndürebilir.Değişken(Variable)Değişken, programlamada bir değeri bellekte saklamak için kullanılan isimli alandır. İçindeki değer program çalışırken okunabilir ve değiştirilebilir; örneğin `fiyat = 250` satırı fiyat adlı bir değişken oluşturur.Döngü(Loop)Döngü (loop), programlamada bir kod bloğunu belirli sayıda ya da bir koşul sağlandığı sürece tekrar tekrar çalıştıran yapıdır. En yaygın türleri for ve while döngüleridir.

İlgili yazılar