Шта су структуре у Голангу

Sta Su Strukture U Golangu



У језику Го, структура је колекција променљивих (поља) груписаних под једним именом. То је композитни тип података који нам омогућава да креирамо прилагођене структуре података за чување повезаних информација. Структуре у Го-у су попут класа у објектно оријентисаном програмирању као што су Ц и Ц++, али не подржавају наслеђивање. Уместо тога, они се ослањају на композицију да би постигли поновну употребу кода. Овај чланак покрива структуре у Голангу и како можемо декларисати и приступити члановима структуре.

Шта је структура у Голангу

У Голангу, структура је сложени тип података који се састоји од нула или више именованих поља, од којих свако има одређени тип. Поља структуре могу бити било ког типа, укључујући друге структуре, низове, функције или интерфејсе.







Ево примера структуре у Голангу:



тип Структура лица {
Стринг пуног имена
ИеарсОлд инт
Адреса локације
}
тип Аддресс струцт {
Стринг имена улице
Име града    стринг
ЦоунтриНаме стринг
}


Овде смо дефинисали структуру особе која има три поља: ФуллНаме, ИеарсОлд и Лоцатион. Поље Локација је само по себи структура која има три поља: СтреетНаме, ЦитиНаме и ЦоунтриНаме.



Како декларисати структуру у Голангу

Можемо декларисати структуру у Голангу користећи тип кључна реч. Име структуре је дефинисано после тип кључну реч, а њена поља су затворена витичастим заградама { } . Ево синтаксе за декларисање структуре у Го:





тип СтруцтНаме струцт {
Име поља1 Тип поља1
Име поља2 Тип поља2
...
}


Испод је пример како да декларишете структуру под именом Персон са два поља наме и старост типова стринг и инт респективно:

тип Структура лица {
низ имена
старост инт
}


У горњем коду смо користили тип кључну реч за декларисање нове структуре под називом Особа са два поља име стринг типа и старости типа инт. Поља су одвојена а Нова линија карактер али а тацка зарез (;) може се користити и за њихово раздвајање.



Како приступити члану структуре у Голангу

Да бисте приступили пољима инстанце структуре у језику Го тачка (') користи се оператор. Након овог оператора тачке следи име поља. Ево примера како да приступите пољима имена и узраста инстанце структуре Персон:

// Створити нова ` Особа ` инстанца структуре са именом 'каш' и старости 24
касх := Особа { име: 'каш' , старост: 24 }

// Приступите пољима ` касх ` струцт инстанце
фмт.Принтлн ( касх.наме ) // Излаз: 'каш'
фмт.Принтлн ( касх.аге ) // Излаз: 24


У горњем коду смо креирали нову инстанцу структуре особе под називом касх са именом касх и старости 24 . Затим приступамо пољима имена и старости инстанце касх структуре користећи (“) оператера и одштампајте их на конзоли.

Важно је напоменути да се пољима инстанце структуре приступа помоћу нотације тачке, а не стрелац нотација (->) користи се у неким другим програмским језицима. Тачкаста нотација се доследно користи у Го за приступ пољима структура, као и својствима и методама других типова.

Пример кода за декларацију и приступ члану структуре у Голангу

Испод је комплетан пример декларисања структуре Персон у Го и штампања њених вредности на екрану:

пакет главни
увоз 'фмт'
тип Структура лица {
низ имена
старост инт
}
фунц маин ( ) {
// Створити нова ` Особа ` инстанца структуре са именом 'каш' и старости 24
касх := Особа { име: 'каш' , старост: 24 }
// Одштампајте ` име ` и ` старости ` оф ` касх ` струцт инстанце на конзолу
фмт.Принтф ( „Име: %с ' , касх.наме )
фмт.Принтф ( 'Старости ' , касх.аге )
}


У горе написаном коду, прво смо прогласили Особа струцт. Ова структура садржи два поља која су име и старост. Након тога, креирали смо нову инстанцу структуре Персон под називом касх са именом касх и старости 24 .

За приказ поља за име и узраст користимо фмт.Принтф функција са и спецификације формата за штампање поља имена и старости, респективно.

Након покретања, на конзоли се појављује следећи код:

Како пренети структуру као аргументе функције

Да бисмо проследили структуру као аргумент функције у Го, једноставно морамо да наведемо тип структуре као тип параметра у потпису функције, а затим проследимо инстанцу структуре као аргумент приликом позивања функције.

Пример кода

Пример у наставку показује како да проследите инстанцу структуре Персон као аргумент функцији у језику Го и одштампате њене вредности на екрану:

пакет главни
увоз 'фмт'
// Објавите структуру са именом ` Особа ` са два поља: ` име ` и ` старости `
тип Структура лица {
низ имена
старост инт
}
// Изјавити а функција назван ` принтПерсон ` за то је потребно а ` Особа ` струцт као Аргумент
фунц принтПерсон ( п Особа ) {
фмт.Принтф ( „Име: %с ' , п.наме )
фмт.Принтф ( 'Старости ' , страна )
}
фунц маин ( ) {
// Створити нова ` Особа ` инстанца структуре са именом 'каш' и старости 24
касх := Особа { име: 'каш' , старост: 24 }
// Пасс тхе ` касх ` структурна инстанца за ` принтПерсон ` функција
принтПерсон ( касх )
}


У горњем коду смо прво декларисали структуру Персон са два поља, име, и старости . Затим декларишемо функцију именовану принтПерсон која узима структуру Персон као аргумент и штампа њена поља имена и старости на екран помоћу функције фмт.Принтф.

У главној функцији креирали смо нову инстанцу структуре Персон под називом касх са именом касх и 24 године. Затим прослеђујемо инстанцу структуре касх у функцију принтПерсон позивањем функције принтПерсон и прослеђивањем касх као аргумент.

Следећи излаз се може видети на конзоли након покретања горњег кода:

Закључак

У Голангу, структуре могу представљати сложене типове података и енкапсулирати повезане податке. Структура је тип података који се састоји од једног или више поља, од којих свако има одређено име и тип. Поља структуре могу бити било ког типа, укључујући друге структуре, низове, функције или интерфејсе. Овај чланак је детаљно разматрао Го структуре, за више информација о декларисању и приступу елементима структуре прочитајте чланак.