D Programlama Dili – Programlama dersleri ve D referansı
Ali Çehreli

... bütün sözlük



İngilizce Kaynaklar


Diğer




alias this

Başka bağlamlarda başka anlamlara gelen alias ve this anahtar sözcükleri bir arada kullanıldıklarında farklı bir anlam kazanırlar. Bu yüzden, ikisi bir arada kullanıldığında tek bir anahtar sözcük olarak kabul edilmelidirler.

alias this, bir yapının veya sınıfın otomatik tür dönüşümü yoluyla başka türler yerine geçmesini sağlar. Tür dönüşümü için başka bir seçenek İşleç Yükleme bölümünde gördüğümüz opCast işlecidir. Farkları, opCast'in açıkça yapılan tür dönüşümleri için, alias this'in ise otomatik tür dönüşümleri için kullanılmasıdır.

Bu iki sözcük birbirlerinden ayrı olarak yazılırlar; aralarına yapının veya sınıfın bir üyesi gelir:

    alias üye_değişken_veya_işlev this;

alias this yapının veya sınıfın türünü gerektiğinde belirtilen üyenin türüne otomatik olarak dönüştürmeyi sağlar. Dönüşüm sonucunda üretilen değer o üyenin değeridir.

Aşağıdaki Kesir örneği alias this'i bir üye işlev ile kullanıyor. Daha aşağıdaki AraştırmaGörevlisi örneğinde ise alias this'in üye değişkenlerle kullanımlarını göreceğiz.

değeri işlevinin dönüş değeri double olduğundan, aşağıdaki alias this bildirimi Kesir nesnelerinin double değerler yerine kullanılabilmelerini sağlar:

import std.stdio;

struct Kesir {
    long pay;
    long payda;

    double değeri() const {
        return double(pay) / payda;
    }

    alias değeri this;

    // ...
}

double hesap(double soldaki, double sağdaki) {
    return 2 * soldaki + sağdaki;
}

void main() {
    auto kesir = Kesir(1, 4);    // 1/4 anlamında
    writeln(hesap(kesir, 0.75));
}

Yukarıdaki yapının nesneleri double türünde değer beklenen ifadelerde geçtiklerinde değeri işlevi çağrılır ve o işlevin döndürdüğü değer kullanılır. Yukarıdaki kodda aslında double bekleyen hesap işlevine bir Kesir nesnesi gönderilebilmiş ve o hesapta değeri işlevinin döndürdüğü 0.25 kullanılmıştır. Program, 2 * 0.25 + 0.75 hesabının sonucunu yazdırır:

1.25