Ano ang Klase at Bagay sa Golang?

Ano Ang Klase At Bagay Sa Golang



Pangunahing ideya sa computer programming tulad ng klase at bagay magbigay ng istraktura para sa pagpapangkat ng code sa magagamit muli at madaling ibagay na mga module. Golang ay may sariling natatanging syntax, tampok, at pilosopiya. Sa kaibahan sa ibang mga wika, ang solusyon ay hindi gaanong halata pagdating sa mga konsepto ng klase at bagay sa Pumunta ka . Sa artikulong ito, tutuklasin natin kung may konsepto si Go ng klase at ang bagay at kung paano ito inihambing sa iba pang mga programming language.

Ano ang isang Klase at isang Bagay?

Bago natin masagot kung Pumunta ka may mga klase at mga bagay , kailangan muna nating tukuyin kung ano ang mga ito sa konteksto ng programming. A klase ay isang modelo o template na nagbabalangkas sa mga katangian at pagkilos ng isang koleksyon ng mga bagay . An bagay ay nilikha bilang isang halimbawa ng a klase kapag ang memorya ay inilalaan at ang estado nito ay nasimulan sa runtime. Mga klase at mga bagay ay mga pangunahing bloke ng gusali sa mga klasikal na object-oriented na programming language tulad ng Java, C++ o C# na sumusuporta sa polymorphism, inheritance, at encapsulation.

Structs sa Golang

Sa Pumunta, mga klase ay pinalitan ng mga uri ng data na tinukoy ng gumagamit na tinatawag na mga istruktura. Ang mga ito mga istruktura pagsamahin ang maraming elemento o katangian at payagan ang pagsasama ng mga pamamaraan – mga function na gumagana sa mga pagkakataon ng struct. Habang mga istruktura ibahagi ang ilang pagkakatulad sa mga klase tulad ng mana at mga interface, mayroon ding mga kapansin-pansing pagkakaiba. Halimbawa, Pumunta ka ay walang constructor – isang natatanging paraan na nagpapasimula ng estado ng isang bagay sa paggawa, gaya ng karaniwang makikita sa mga wikang nakabatay sa klase.







Mga interface sa Golang

Pumunta ka ay may isang konsepto na tulad ng mga bagay : mga interface . An interface ay isang koleksyon ng mga pamamaraan na naglalarawan ng isang gawi o functionality, ngunit hindi tinukoy kung paano ito ipinapatupad. Mga interface magbigay ng paraan upang makamit ang polymorphism sa Pumunta ka , na nagpapahintulot sa iba't ibang uri na magamit nang palitan kung natutugunan ng mga ito ang mga kinakailangan ng interface. Ito ay isang makapangyarihang konsepto na nagbibigay-daan Pumunta ka upang makamit ang isang mataas na antas ng flexibility at extensibility nang hindi isinasakripisyo ang pagganap o pagiging simple.



Paggamit ng Mga Struct at Interface sa Golang

Ang sumusunod na halimbawa ay naglalarawan ng paggamit ng struct at mga interface sa Pumunta ka .



pangunahing pakete
angkat 'fmt'

uri ng Tao struct {
string ng pangalan
}

uri ng Manggagawa struct {
Tao
string ng trabaho
}

func ( h Tao ) Impormasyon ( ) {
fmt. Printf ( 'Ako ay %s \n ' , h. pangalan )
}

func ( w Manggagawa ) Impormasyon ( ) {
fmt. Printf ( 'Ako ay %s. Ako ay isang %s. \n ' , Sa. pangalan , Sa. trabaho )
}

uri Interface ng Tao {
Impormasyon ( )
}
funcmain ( ) {
John := Manggagawa { Tao { 'John' } , 'manggagawa' }
Doe := Tao { 'Doe' }

John. Impormasyon ( )
Doe. Impormasyon ( )

ay nasa Tao

i = John
i. Impormasyon ( )

i = Doe
i. Impormasyon ( )
}

Gumawa kami ng dalawa mga istruktura , Tao at Manggagawa , sa code sa itaas. Ang mga function na nagpi-print ng mga mensahe ay malilikha. Ang mga istruktura ay tinatawag sa pangunahing () function ng Tao interface . Nakikita natin na ang Impormasyon pamamaraan ay ipinatupad ng parehong Manggagawa at ang Tao , samakatuwid ang variable i na may uri Tao interface ay gagana nang tama at i-print ang output.





Output



Pumunta ka ay may kakaibang diskarte sa encapsulation . Encapsulation ay nagagawa sa maginoo na object-oriented na programming sa pamamagitan ng paggawa ng mga field na pribado at ginagawa itong naa-access sa pamamagitan ng getter at setter method. Sa Pumunta ka , encapsulation ay nakakamit sa pamamagitan ng paggamit ng maliliit na pangalan ng field, na makikita lamang sa loob ng parehong pakete. Ang diskarte na ito ay mas tapat at hindi malabo, na ginagawang mas simple upang maunawaan kung paano kumikilos ang code at binabawasan ang posibilidad ng mga hindi inaasahang epekto.

Pumunta ka nagbibigay ng pinasimpleng anyo ng polymorphism . Ang Object-oriented programming ay may tinatawag na feature polymorphism na nagbibigay-daan sa mga bagay mula sa iba't ibang klase na ituring bilang mga pagkakataon ng parehong klase. Pumunta ka ay hindi nagbibigay ng conventional class-based inheritance, ngunit sinusuportahan nito ang mga interface, na maaaring magamit upang tukuyin ang isang set ng mga pamamaraan na dapat ipatupad ng isang struct. Pumunta ka nag-aalok din ng mga uri ng pahayag, na nagbibigay-daan sa mga programmer na suriin ang nilalaman ng isang variable ng interface at makuha ang pinagbabatayan na konkretong halaga.

Konklusyon

Pumunta ka ay wala mga klase o mga bagay sa klasikong kahulugan; sa halip, ito ay gumagamit mga istruktura at mga interface , na nag-aalok ng maihahambing na functionality sa mas diretso at magaan na paraan. Pumunta ka ay nakakuha ng katanyagan sa mga developer na inuuna ang pagiging simple, pagiging madaling mabasa, at pagganap sa pamamagitan ng pagtanggap ng ibang pilosopiya at grammar. Kahit na nakikilala Go's Ang pamamaraan ay maaaring tumagal ng ilang oras, ang mga natatanging tampok at disenyo nito ay nagreresulta sa mas epektibo at mapanatili na code.