Anlatım Tarihi: 13.08.2019
$$ Tanımı Mirc.chm açıklaması Kod: Kodu kopyalamak için üzerine çift tıklayın!
The double $$ means that this command will only be executed if a parameter is specified. If you specify only one parameter in the above command it will not be executed.
Bu tanımlayıcı, başına geldiği tanım
$null dönerse betiği durdurur. Görev sonlandırma koşullarının yerine bile kullanılır ve işlemi basitleştirir.
Daha iyi anlaşılması adına örneklerle açıklayalım.
-
Örnek 1 Kod: Kodu kopyalamak için üzerine çift tıklayın!
alias deneme { echo 4 -a 2. Kelime $qt($2) }
/deneme selam yapılınca çıkan
sonuç -: 2. Kelime ""
2. kelimeyi yazmadığımız için $2 boş döndü ve sonuç vermedi
/deneme selam naber yapılınca çıkan
sonuç -: 2. Kelime "naber"
Normal şartlarda 2. Kelime yokken sonuç dönmesin istersek yapacağımız işlem, bir koşul oluşturmak olur.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
alias deneme {
if ($2) { echo 4 -a 2. Kelime $qt($2) }
}
/deneme selam yapılınca herhangi bir sonuç dönmedi, Çünkü koşulda eğer
$2 değeri varsa sonuç dönsün istedik.
/deneme selam naber yapılınca çıkan
sonuç -: 2. Kelime "naber"
Bir koşul kullanmadan, eğer
$2 değeri girilmişse echo ile sonuç yaz,
$2 değeri yoksa işlemi durdur demek için
$$ tanımını kullanırız. Burada 2.
$ karakteri ile bir koşuldan kurtulmuş oluruz.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
alias deneme { echo 4 -a 2. Kelime $qt($$2) }
/deneme selam yapılınca çıkan
sonuç -: Sonuç yok, çünkü
$2 girilmedi ve
$2 değeri
$null(boş) olduğu için işlemi durdurdu.
/deneme selam naber yapılınca çıkan
sonuç -: 2. Kelime "naber"
Tabi ki bu işlemi pek çok alanda kullanabilirsiniz. Örneğin döngülerde.
-
Örnek:
-
Kanalda bulunan nickleri sıralamak için bir döngü kullanalım.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
alias deneme {
var %a = 1
while (%a <= $nick(#msl.tr,0)) {
echo -a $nick(#msl.tr,%a)
inc %a
}
}
/deneme komutundan çıkan sonuç
Kod: Kodu kopyalamak için üzerine çift tıklayın!
Feragat
SrjN
pC`kOpAt
YouMyCure
While döngüsünde belirttiğimiz koşul gerçekleşene kadar sonuç verdi.
Koşul kullanmadan nickleri sıralayalım
Kod: Kodu kopyalamak için üzerine çift tıklayın!
alias deneme {
while . {
inc -u %a
echo -a $$nick(#msl.tr,%a)
}
}
/deneme komutundan çıkan sonuç
Kod: Kodu kopyalamak için üzerine çift tıklayın!
Feragat
SrjN
pC`kOpAt
YouMyCure
Yukarıda herhangi bir
koşul kullanılmadı. %a değişkenine
inc komutu ile her değer atandığında
1 arttı. Kanalda
4 nick olduğu için
%a değişkeni
4 olana kadar döngü devam etti,
4 ü geçtiğinde
$$nick(#msl.tr,%a) yani
$nick(#msl.tr,5) ve üzeri rakamlar sonuç dönmeyeceği için (* /echo: insufficient parameters) döngü durduruldu.
Break edildi.
$nick(#msl.tr,1) -
$nick(#msl.tr,2) -
$nick(#msl.tr,3) -
$nick(#msl.tr,4)
-
Küçük not: inc komutundaki
–u parametresi normalde arttırılan değişkeni belirtilen süre sonrasında siler(saniye cinsinden)
/inc -u2 %ç yaptığımızda
%ç değişkenini
1 arttırır ve
2 saniye sonra siler.
-
Sonuç: Kod: Kodu kopyalamak için üzerine çift tıklayın!
* Inc %ç to 1
-
* Unset %ç
Eğer döngüde süre belirtmeden
inc –u %değişken kullanırsak işlem bittiğinde
%değişken i siler.
–u kullanmasaydık
/deneme komutunu her kullandığımızda değişken üst üste sayacaktı ve
$nick(#msl.tr,%a) 1. Kullanımdan sonra hiç sonuç vermeyecekti.
Takıldığınız yerleri konu altından sorabilirsiniz.
Faydalı olabilecek kaynaklar.
-
1- https://en.wikichip.org/wiki/mirc/identifiers/$$
Kolay gelsin.