|
Süreçler ( Prosedürler
)
VBScript'te programın akış kontrolünde kullanacağınız bir diğer
grup araç ise örneğin Javascript veya Perl'de fonksiyon dediğimiz
gruplandırılmış ve isimlendirilmiş işlem kümeleridir. Bu kümeler
programın bir yerinde topluca dururlar ve programın başka bir
yerinden isimleriyle çağrılırlar; veya bu kümelere isimleriyle
referans yapılır.
VBScript'te bu kümelenmiş kod gruplarına Prosedür (Süreç) denir.
iki türlü olur: fonksiyon (Function) ve Subroutine
(sab-rutin okunur; kısaca Sub diye yazılır ve sab diye
okunur). Bu iki süreç arasındaki başlıca fark, fonksiyondan
kendisini çağıran komuta daima bir değer döner; Sub'dan
dönmeyebilir. Sub, yapacağı işi yapar ve programın kontrolünü
kendine atıf yapılan noktaya devreder. VBScript'de bir programa
farklı yerlerde sık sık aynı işi yaptırıyorsak, bunu bir Sub
ile yaptırırız; fakat programımıza bir değer gerekiyorsa, bu değeri
bir fonksiyona hesaplattırırız. Her ikisi de kendilerine atıfta
bulunan veya kendilerini göreve çağıran satırdan (komuttan,
deyimden) verilebilecek değerleri kabul edebilirler.
Biraz karışık oldu; ama bunu ilerde gerçek ASP uygulamaları
yazarken daha iyi anlayacağız. Şimdilik bir iki noktayı öylece
öğrenmeye bakalım. Bir fonksiyonun adı, tıpkı bir değişken adı gibi,
fonksiyonun ürettiği değeri tutar; ve bu değer kendisini çağıran
komuta verilir. Diyelim ki, programımızın çeşitli noktalarında
yazı-tura atıp, elde edilecek sonuca göre bir iş yapmak zorundayız.
Bu ihtiyacın doğduğu yerde, yazı-tura komutlarını yazabiliriz. Ancak
bu ortaya çok uzun bir programın çıkmasına sebep olur. Oysa
yazı-tura işlemlerini bir fonksiyonda toplar ve ihtiyaç halinde
sadece bu fonksiyonu çağırırsak ve fonksiyon bize o anda yazı mı
geldiğini, yoksa tura mı geldiğini bildirirse, işimiz çok
kolaylaşmış olur.
Böyle bir fonksiyon, yukarıdaki örnekten hareketle, şöyle
olabilir:
|
|
<% Function YaziTura Dim
ParaAt Randomize ParaAt = Int(Rnd * 2) + 1 If ParaAt
= 1 Then YaziTura = "Yazı" Else YaziTura =
"Tura" End If End Function %> |
Bu fonksiyonu, ASP programının herhangi bir yerinden, şöyle bir
yöntemle çağırabilir; ve vereceği sonucu programın akışına uygun
şekilde kullanabilirsiniz:
|
|
<% NeGeldi = YaziTura Response.Write
NeGeldi %>
|
Fonksiyonun sonunda End Function ifadesinin bulunduğuna ve
fonksiyonun elde ettiği sonucu kendi adına atadığımıza dikkat edin.
DIM ifadesiyle böyle bir değişken tanımlamadığımız halde
VBScript, fonksiyonu çağırdığınız anda bunu kendiliğinden
yapacaktır.
Aynı işlemi Subroutine (Sub) olarak yazabiliriz. Fakat bu
kez Sub, elde edeceği değeri kendisi kullanacak ve bittiği anda
kontrol programa geri dönecektir:
|
|
<% Sub
YaziTura() Dim ParaAt Randomize ParaAt =
Int(Rnd * 2) + 1 If ParaAt = 1 Then Response.Write
"Yazı" Else Response.Write "Tura" End If End
Sub %>
| |