Какво е клас и обект в Golang?

Kakvo E Klas I Obekt V Golang



Фундаментални идеи в компютърното програмиране като клас и обект предоставят структура за групиране на код в повторно използваеми и адаптивни модули. Голанг има свой собствен отличителен синтаксис, характеристики и философия. За разлика от други езици, решението не е толкова очевидно, когато става въпрос за концепциите на клас и обект в Отивам . В тази статия ще проучим дали Go има концепция за клас и ан обект и как се сравнява с други езици за програмиране.

Какво е клас и обект?

Преди да отговорим дали Отивам има класове и обекти , първо трябва да дефинираме какво представляват те в контекста на програмирането. А клас е модел или шаблон, който очертава характеристиките и действията на колекция от обекти . Ан обект е създаден като екземпляр на a клас когато паметта е разпределена и нейното състояние се инициализира по време на изпълнение. Класове и обекти са ключови градивни елементи в класическите обектно-ориентирани езици за програмиране като Java, C++ или C#, които поддържат полиморфизъм, наследяване и капсулиране.

Структури в Golang

в Давай, класове се заменят с дефинирани от потребителя типове данни, наречени структури. Тези структури комбинирайте множество елементи или свойства и позволявайте включването на методи – функции, които работят върху екземпляри на структура Докато структури споделете някои прилики с класове като наследяване и интерфейси, също има забележими разлики. Например, Отивам няма конструктор – уникален метод, който инициализира състоянието на обект при създаване, както обикновено се среща в езиците, базирани на класове.







Интерфейси в Golang

Отивам има концепция, която е като обекти : интерфейси . Ан интерфейс е колекция от методи, които описват поведение или функционалност, но без да уточняват как се изпълнява. Интерфейси осигуряват начин за постигане на полиморфизъм в Отивам , което позволява различни типове да се използват взаимозаменяемо, ако отговарят на изискванията на интерфейса. Това е мощна концепция, която позволява Отивам за постигане на висока степен на гъвкавост и разширяемост, без да се жертва производителност или простота.



Използване на структури и интерфейси в Golang

Следващият пример илюстрира използването на структура и интерфейси в Отивам .



основен пакет
импортиране 'fmt'

тип Човек структура {
име низ
}

тип Работник структура {
Човек
низ за работа
}

функ ( h Човек ) Информация ( ) {
fmt. Printf ( 'Аз съм с ' , ч. име )
}

функ ( w Работник ) Информация ( ) {
fmt. Printf ( „Аз съм %s. Аз съм %s. ' , в. име , в. работа )
}

тип Person интерфейс {
Информация ( )
}
funcmain ( ) {
Джон := работник { Човек { 'Джон' } , 'работник' }
Сърна := Човек { 'Сърна' }

Джон. Информация ( )
Сърна. Информация ( )

беше лично

аз = Джон
аз Информация ( )

аз = Сърна
аз Информация ( )
}

Създадохме две структури , Човек и работник , в кода по-горе. След това се създават функциите, които отпечатват съобщенията. The структури се наричат ​​в основен () функция на Лице интерфейс . Можем да видим, че Информация методът е приложен и от двете работник и на Човек , следователно променливата i с типа Лице интерфейсът ще функционира правилно и ще отпечата изхода.





Изход



Отивам има уникален подход към капсулиране . Капсулиране се постига в конвенционалното обектно-ориентирано програмиране, като полетата се правят частни и се правят достъпни чрез методите getter и setter. в Отивам , капсулиране се постига чрез използване на имена на полета с малки букви, които са видими само в рамките на същия пакет. Тази стратегия е по-ясна и недвусмислена, което улеснява разбирането как се държи кодът и намалява възможността от непредвидени странични ефекти.

Отивам предоставя опростена форма на полиморфизъм . Обектно-ориентираното програмиране има функция, наречена полиморфизъм което позволява обекти от различни класове да бъдат третирани като екземпляри от един и същи клас. Отивам не предоставя конвенционалното наследяване, базирано на класове, но поддържа интерфейси, които могат да се използват за указване на набор от методи, които структурата трябва да имплементира. Отивам също така предлага твърдения за тип, които позволяват на програмистите да изследват съдържанието на интерфейсна променлива и да получат основната конкретна стойност.

Заключение

Отивам няма класове или обекти в класическия смисъл; вместо това използва структури и интерфейси , които предлагат сравнима функционалност по по-прост и лек начин. Отивам придоби популярност сред разработчиците, които дават приоритет на простотата, четливостта и производителността чрез възприемане на различна философия и граматика. Въпреки че се запознава с Go's методологията може да отнеме известно време, нейните отличителни характеристики и дизайн водят до по-ефективен и поддържаем код.