Golang'da Sınıf ve Nesne Nedir?

Golang Da Sinif Ve Nesne Nedir



Bilgisayar programlamadaki temel fikirler gibi sınıf Ve nesne kodu yeniden kullanılabilir ve uyarlanabilir modüller halinde gruplandırmak için bir yapı sağlar. Golang kendine özgü sözdizimi, özellikleri ve felsefesi vardır. Diğer dillerin aksine, iş kavramlara geldiğinde çözüm o kadar açık değildir. sınıf Ve nesne içinde Gitmek . Bu yazıda, Go'nun bir kavramı olup olmadığını keşfedeceğiz. sınıf ve bir nesne ve diğer programlama dilleriyle karşılaştırması.

Sınıf ve Nesne Nedir?

Cevaplamadan önce Gitmek sahip olmak sınıflar Ve nesneler , önce programlama bağlamında ne olduklarını tanımlamamız gerekir. A sınıf özelliklerinin ve eylemlerinin ana hatlarını çizen bir model veya şablondur. nesneler . Bir nesne örneğinin bir örneği olarak oluşturulur sınıf bellek tahsis edildiğinde ve durumu çalışma zamanında başlatıldığında. sınıflar Ve nesneler polimorfizmi, kalıtımı ve kapsüllemeyi destekleyen Java, C++ veya C# gibi klasik nesne yönelimli programlama dillerinde temel yapı taşlarıdır.

Golang'daki yapılar

İçinde Git, dersler adı verilen kullanıcı tanımlı veri türleri ile değiştirilir. yapılar. Bunlar yapılar birden fazla öğeyi veya özelliği birleştirin ve yöntemlerin dahil edilmesine izin verin - örneğin örnekleri üzerinde çalışan işlevler yapı Sırasında yapılar ile bazı benzerlikler paylaşmak sınıflar kalıtım ve arayüzler gibi, dikkate değer farklılıklar da vardır. Örneğin, Gitmek bir oluşturucuya sahip değildir - tipik olarak sınıf tabanlı dillerde bulunduğu gibi, bir nesnenin durumunu oluşturma sırasında başlatan benzersiz bir yöntem.







Golang'daki arayüzler

Gitmek gibi bir konsepti var nesneler : arayüzler . Bir arayüz bir davranışı veya işlevi açıklayan, ancak nasıl uygulandığını belirtmeden yöntemler topluluğudur. arayüzler polimorfizm elde etmek için bir yol sağlamak Gitmek , arayüzün gereksinimlerini karşılamaları halinde farklı türlerin birbirinin yerine kullanılmasına izin verir. sağlayan güçlü bir kavramdır. Gitmek performanstan veya basitlikten ödün vermeden yüksek derecede esneklik ve genişletilebilirlik elde etmek için.



Golang'da Yapıların ve Arayüzlerin Kullanımı

Aşağıdaki örnek, kullanımını göstermektedir yapı Ve arayüzler içinde Gitmek .



ana paket
içe aktarmak 'fmt'

tip İnsan yapı {
isim dizisi
}

tip İşçi yapı {
İnsan
iş dizisi
}

işlev ( h İnsan ) Bilgi ( ) {
fmt. Yazdır ( 'Ben %s \N ' , H. isim )
}

işlev ( İşçi ) Bilgi ( ) {
fmt. Yazdır ( 'Ben %s. Ben bir %s'im. \N ' , İçinde. isim , İçinde. )
}

Kişi arabirimini yazın {
Bilgi ( )
}
işlev ( ) {
John := Çalışan { İnsan { 'John' } , 'çalışan' }
Doe := İnsan { 'doe' }

John. Bilgi ( )
Doe. Bilgi ( )

Şahsen oldu

Ben = John
Ben. Bilgi ( )

Ben = Doe
Ben. Bilgi ( )
}

iki tane yarattık yapılar , İnsan Ve Çalışan , yukarıdaki kodda. Mesajları yazdıran işlevler daha sonra oluşturulur. bu yapılar içinde çağrılır ana () işlevi Kişi arayüz . görebiliriz ki Bilgi yöntem her iki tarafça uygulanmıştır. Çalışan ve İnsan , bu nedenle tür ile i değişkeni Kişi arabirim düzgün çalışacak ve çıktıyı yazdıracaktır.





Çıktı



Gitmek benzersiz bir yaklaşımı vardır kapsülleme . kapsülleme geleneksel nesne yönelimli programlamada, alanları özel yaparak ve onları alıcı ve ayarlayıcı yöntemlerle erişilebilir kılarak gerçekleştirilir. İçinde Gitmek , kapsülleme yalnızca aynı paket içinde görünen küçük alan adları kullanılarak elde edilir. Bu strateji daha basit ve nettir, bu da kodun nasıl davrandığını anlamayı kolaylaştırır ve öngörülemeyen yan etki olasılığını azaltır.

Gitmek basitleştirilmiş bir biçim sağlar polimorfizm . Nesne yönelimli programlama adı verilen bir özelliğe sahiptir. polimorfizm Bu, çeşitli sınıflardaki nesnelerin aynı sınıfın örnekleri olarak ele alınmasını sağlar. Gitmek geleneksel sınıf tabanlı kalıtımı sağlamaz, ancak bir yapının uygulaması gereken bir dizi yöntemi belirtmek için kullanılabilen arabirimleri destekler. Gitmek ayrıca, programcıların bir arabirim değişkeninin içeriğini incelemesine ve temeldeki somut değeri elde etmesine olanak tanıyan tip iddiaları da sunar.

Çözüm

Gitmek sahip değil sınıflar veya nesneler klasik anlamda; bunun yerine, kullanır yapılar Ve arayüzler , karşılaştırılabilir işlevselliği daha basit ve hafif bir şekilde sunar. Gitmek farklı bir felsefe ve gramer benimseyerek basitliğe, okunabilirliğe ve performansa öncelik veren geliştiriciler arasında popülerlik kazanmıştır. tanışmasına rağmen git metodoloji biraz zaman alabilir, ayırt edici özellikleri ve tasarımı daha etkili ve sürdürülebilir kodla sonuçlanır.