Змест[Схаваць][Паказаць]
- 1. Ахарактарызуйце Голанг.
- 2. Якія перавагі Go мае перад іншымі мовамі?
- 3. Што такое fmt у праграмаванні Golang?
- 4. Што такое Go Interfaces?
- 5. Што такое радковыя літэралы?
- 6. Як наладжваюцца працоўныя асяроддзя і параметры ў Golang?
- 7. Апішыце пакеты Golang?
- 8. Якія тыпы дадзеных падтрымліваюцца Golang?
- 9. Што вы маеце на ўвазе пад аб'явай статычнага тыпу зменнай у Golang?
- 10. Што такое дэкларацыя дынамічнай зменнай у Golang?
- 11. Як я магу выкарыстоўваць карыстальніцкія пакеты на мове праграмавання GO?
- 12. Што такое гаруціна? Як вы можаце спыніць гэта?
- 13. Ахарактарызуйце руну.
- 14. Што такое ідыёма Go для прадстаўлення пералічэнняў?
- 15. Як тып зменнай правяраецца падчас выканання?
- 16. Апішыце каналы Go.
- 17. Растлумачце метады Голанга.
- 18. Што такое гонка дадзеных?
- 19. Што такое зборка смецця Go?
- 20. Ахарактарызуйце этапы тэсціравання з выкарыстаннем Golang.
- 21. Што такое слайсы ў Go?
- 22. Што такое памяць кучы?
- 23. Што такое замыканне функцый?
- 24. Што азначае аператар Goto Голанга?
- 25. Што такое Lvalue і Rvalue у Golang?
- 26. Што такое канструкцыі цыклаў у Go?
- 27. Што такое шаблоны праектавання?
- 28. Які лепшы пакет Golang для простых файлавых аперацый? Якія дадатковыя пакеты Golang выкарыстоўваюцца для працы з файламі?
- 29. Дайце тлумачэнне аб'ектна-арыентаванай архітэктуры Голанга.
- 30. Якія тыпы пераўтварэння падтрымлівае Golang?
- 31. Апішыце прызначэнне і працу сцвярджэння тыпу.
- 32. Што такое тып структуры?
- 33. Растлумачце рэзервовы масіў значэння зрэзу.
- 34. Ці неабходна мець зменныя GOPATH і GOROOT, і калі так, то чаму?
- 35. Ці дазваляе Golang атрымаць спадчыну?
- 36. Як выглядае CGo ў Golang?
- 37. Што такое тып паказальніка ў Golang?
- заключэнне
Мова праграмавання Go, часта вядомая як Golang, гэта мова праграмавання з адкрытым зыходным кодам, якая параўнальная з C, але прызначана для хуткай кампіляцыі, плыўнага паралелізму і зручнасці для распрацоўшчыкаў.
Гэтая мова была распрацавана і выкарыстоўваецца Google, але ў апошнія гады яна набыла папулярнасць у іншых фірмах, паколькі попыт на адначасовае сеткавае праграмаванне вырас.
Golang палягчае распрацоўку для распрацоўшчыкаў, прапаноўваючы аптымальную кампіляцыю для хуткай распрацоўкі праграмнага забеспячэння, больш плыўнага паралелізму, павышанай эфектыўнасці выканання і меншай колькасці дэфектаў.
Golang хутка становіцца папулярнай карпаратыўнай мовай праграмавання з некалькімі варыянтамі працаўладкавання. Многія IT-гіганты, такія як Google, Uber і Apple, любяць Golang за меншы час распрацоўкі, прастату навучання, палепшаны час выканання, уборку смецця і іншыя перавагі.
Паколькі ўсё больш фірмаў выкарыстоўваюць Golang, расце патрэба ў праграмістах Golang. Сутнасць? Вывучэнне Golang дасць некалькі перспектыў працаўладкавання.
Калі вы хочаце працаваць у якасці распрацоўшчыка Golang, вы павінны належным чынам падрыхтавацца да інтэрв'ю. Вось чаму мы сабралі гэтую поўную калекцыю пытанняў для інтэрв'ю Golang.
У гэтай публікацыі мы прадставім асноўныя і складаныя пытанні для інтэрв'ю Golang, каб вы маглі лёгка прайсці інтэрв'ю.
1. Ахарактарызуйце Голанг.
Go з'яўляецца высокага ўзроўню, агульнага прызначэння мова праграмавання які падтрымлівае зборку смецця і паралельнае праграмаванне і мае вельмі жорсткую і статычную тыпізацыю. Праграмы Go ствараюцца з выкарыстаннем пакетаў, якія забяспечваюць эфектыўнае кіраванне залежнасцямі.
Акрамя таго, ён выкарыстоўвае перавагі падыходу кампіляцыі для стварэння выкананых двайковых файлаў з зыходнага кода. Go - гэта простая мова з прыгожымі і выразнымі сінтаксічнымі структурамі.
Ён пастаўляецца з наборам моцных стандартных бібліятэк, якія могуць выкарыстоўвацца распрацоўшчыкамі для вырашэння праблем без неабходнасці выкарыстання іншых пакетаў.
2. Якія перавагі Go мае перад іншымі мовамі?
- Код Go быў распрацаваны з улікам практычнасці, у адрозненне ад іншых моў, якія пачыналіся як інтэлектуальныя эксперыменты. Кожны выбар сінтаксісу і функцый зроблены з улікам зручнасці праграміста.
- Паколькі аўтаматычны збор смецця працуе адначасова з праграмай, ён значна больш эфектыўны, чым Java або Python.
- Маштабаванасць і паралелізм аддадзены прыярытэтам у Golang.
- Golang звычайна лічыцца больш зразумелай, чым іншыя мовы, паколькі яна мае адзіную стандартызаваную структуру кода.
3. Што такое fmt у праграмаванні Golang?
Пакет Format пазначаецца сімвалам fmt. Карыстальнікі могуць выкарыстоўваць гэту функцыянальнасць для фарматавання асноўнага тэксту, значэнняў ці чаго-небудзь яшчэ і раздрукоўкі.
Гэта таксама дазваляе карыстальнікам атрымліваць увод з тэрмінала, запісваць у файл з дапамогай запісу і нават ствараць індывідуальныя мудрагелістыя паведамленні пра памылкі. Гэты пакет прызначаны для фарматавання ўводу і вываду.
4. Што такое Go Interfaces?
Інтэрфейсы ў Go адрозніваюцца ад інтэрфейсаў у іншых мовах. Інтэрфейсы Go - гэта асаблівы тып, які выкарыстоўваецца для выражэння калекцыі адной або некалькіх сігнатур метаду.
Інтэрфейс фарміруецца з дапамогай тэрміна «тып», за якім ідуць імя і ключавое слова інтэрфейс. Інтэрфейсы можна вызначыць наступным чынам:
- збор метадаў
- тып
5. Што такое радковыя літэралы?
Радковы літэрал - гэта радковая канстанта, атрыманая злучэннем літар. Неапрацаваныя і інтэрпрэтаваныя радковыя літаралы - гэта два тыпы радковых літаралаў. Неапрацаваныя радковыя літэралы акружаны зваротнымі сцяжкамі (foo) і ўтрымліваюць неінтэрпрэтаваныя сімвалы UTF-8.
Інтэрпрэтаваныя радковыя літэралы - гэта радкі, запісаныя ў падвойных двукоссях і якія ўключаюць любы сімвал, акрамя новага радка і няпоўных двукоссяў.
6. Як наладжваюцца працоўныя асяроддзя і параметры ў Golang?
Працоўнае асяроддзе і налады можна канфігураваць з дапамогай JSON, які шырока выкарыстоўваецца ў нашы дні. Той факт, што JSON уключаны ў стандартную бібліятэку, з'яўляецца яе галоўнай перавагай.
Стандартная бібліятэка забяспечвае метады напісання для прызначаных Структура дадзеных, што робіць яго вельмі чытэльным. Пакет YAML для Go - дадатковы выбар.
7. Апішыце пакеты Golang?
Пакеты - гэта тэчкі, у якіх знаходзяцца іншыя пакеты і іх зыходны код у працоўнай вобласці Go. Звязаныя пакеты ўключаюць у сябе ўвесь код, уключаючы зменныя, функцыі і тыпы, якія запісаны ў зыходных файлах.
Кожны зыходны файл з'яўляецца часткай пакета, і пакеты go таксама могуць захоўвацца ўнутры пакетаў.
8. Якія тыпы дадзеных падтрымліваюцца Golang?
Golang выкарыстоўвае наступныя тыпы:
- Метад
- Boolean
- Лікавы
- Радок
- Паказальнік
- функцыя
- інтэрфейс
- Лустачку
- Структура
- карта
- Канал
- масіў
9. Што вы маеце на ўвазе пад аб'явай статычнага тыпу зменнай у Golang?
Кампілятар можа працягнуць іншую кампіляцыю без неабходнасці мець поўную інфармацыю аб зменнай дзякуючы аб'яўленню зменных статычнага тыпу, якія ўпэўніваюць яго ў тым, што існуе толькі адна зменная з дадзеным выглядам і назвай.
Аб'ява зменнай важная толькі падчас кампіляцыі; кампілятар патрабуе рэальнай зменнай і аб'явы пры падключэнні да прыкладання.
10. Што такое дэкларацыя дынамічнай зменнай у Golang?
Кампілятар павінен растлумачыць тып зменнай у дынамічным тыпе аб'явы зменнай на аснове сумы, перададзенай ёй. У якасці абавязковай умовы кампілятар не патрабуе зменнай для статычнай класіфікацыі.
11. Як я магу выкарыстоўваць карыстальніцкія пакеты на мове праграмавання GO?
Калі вы ствараеце асобны праект go get -table для вашай бібліятэкі і ён прызначаны толькі для ўнутранага выкарыстання, вы можаце напісаць код, як гэта.
- Змесціце каталог файлаў бібліятэкі ў каталог вашага праекта.
- Спасылайцеся на бібліятэку па яе шляху адносна кораня працоўнай вобласці, якая змяшчае праект.
12. Што такое гаруціна? Як вы можаце спыніць гэта?
Гарапраграма - гэта функцыя або працэдура, якая выконваецца адначасова з іншымі гарапраграмамі ў спецыяльным патоку gorotutine. Патокі Goroutine лягчэйшыя за звычайныя патокі, і большасць прыкладанняў Golang адначасова выкарыстоўваюць тысячы goroutine.
Праграму можна спыніць, перадаўшы ёй сігнальны канал. Goroutines можа рэагаваць на сігналы, толькі калі яны накіраваны на праверку, таму ўключайце праверкі ў разумных месцах, такіх як верхняя частка цыкла for.
13. Ахарактарызуйце руну.
У Go руна - гэта ўбудаваны тып з назвай int32. Unicode CodePoint служыць рунай у Go. Незалежна ад таго, колькі байт займае кодавы пункт, ён можа быць прадстаўлены рунай.
Руны не павінны быць у парадку ў радку. Хаця мы можам канвертаваць паміж радком і рунай, гэта не адно і тое ж.
14. Што такое ідыёма Go для прадстаўлення пералічэнняў?
Мова праграмавання Golang непасрэдна не падтрымлівае пералічэнні. Iota і канстанты могуць выкарыстоўвацца для рэалізацыі пералічэнняў. Для рэалізацыі пералічанага тыпу можна выкарыстоўваць любы з наступных падыходаў:
- прадстаўляем новы цэлы тып
- Для ўказання яго значэння выкарыстоўваецца ёта.
- Падаючы функцыю String для тыпу
15. Як тып зменнай правяраецца падчас выканання?
Пераключальнік тыпу - гэта найбольш эфектыўны падыход да вызначэння тыпу зменнай у рэжыме рэальнага часу. Пры выкарыстанні пераключальніка тыпу зменныя ацэньваюцца па тыпу, а не па значэнні.
І выпадак па змаўчанні, які выконваецца, калі ні адзін з выпадкаў не адпавядае рэчаіснасці, і хаця б адзін выпадак, які служыць умоўным аператарам, прысутнічаюць у кожным камутатары. Вы можаце, напрыклад, стварыць пераключальнік тыпу, які вызначае, ці з'яўляецца значэнне інтэрфейсу, якое я ўключаю, тыпам int або радком:
16. Апішыце каналы Go.
Канал go забяспечвае перадачу даных і перадачу паміж гаруцінамі. Даныя аднаго тыпу могуць перадавацца па адным канале.
Goroutines могуць адпраўляць і атрымліваць даныя па адным і тым жа канале дзякуючы двухнакіраванаму патоку даных у канале.
17. Растлумачце метады Голанга.
Golang не дае класаў, але падтрымлівае метады. Гэтыя метады ідэнтычныя функцыям, за выключэннем таго, што метады Go маюць параметр атрымальніка.
Метад Go мае доступ да атрыбутаў прымача праз параметры прымача. Метады Go, таксама вядомыя як функцыі прымача, дапамагаюць у прадстаўленні больш дакладнай і рэальнай ідэі.
18. Што такое гонка дадзеных?
Самая распаўсюджаная і складаная адладка - гэта гонка дадзеных. Несінхранізаваны доступ да агульнай памяці або адначасовае выкананне некалькіх goroutines без асобнай апрацоўкі прыводзіць да памылкі гонкі дадзеных.
19. Што такое зборка смецця Go?
Уборка смецця перапрафілюе сховішча, якое было дынамічна прызначана праграме для выкарыстання іншымі аб'ектамі. Гэта слова часта адносіцца да аўтаматызаванай рэгенерацыі зборшчыка адходаў для звычайнага захоўвання, а не да відавочнага кода (прадастаўленага праграмістам) для вызвалення пэўных блокаў памяці.
Аўтаматычны збор смецця часта пачынаецца, калі колькасць вольнай аператыўнай памяці падае ніжэй зададзенага парога або пасля пэўнай колькасці размеркаванняў.
Выдаленне элементаў, якія больш не патрэбныя праграмнаму забеспячэнню для стварэння месца ў памяці для больш дынамічных аб'ектаў, называецца «вываз смецця».
20. Ахарактарызуйце этапы тэсціравання з выкарыстаннем Golang.
Golang забяспечвае аўтаматызаванае тэсціраванне пакетаў з выкарыстаннем спецыяльных набораў тэсціравання. Каб стварыць новы пакет, стварыце файл, які заканчваецца на _test.go і змяшчае функцыю TestXxx, дзе Xxx замяняецца назвай функцыі, якую вы тэстуеце.
Напрыклад, функцыя, якая правярае магчымасці ўваходу ў сістэму, будзе называцца TestLogin. Затым файл пакета тэставання ўключаецца ў той жа пакет, што і файл, які тэстуецца.
Тэставы файл будзе прапушчаны падчас звычайнага выканання, але будзе запушчаны пры ўводзе каманды go test.
21. Што такое слайсы ў Go?
Зрэзы - гэта важны тып даных Go, які забяспечвае больш магутны інтэрфейс для паслядоўнасцей, чым масівы. Зрэзы, у адрозненне ад масіваў, тыпізуюцца выключна ў залежнасці ад элементаў, якія яны ўтрымліваюць (а не колькасці элементаў).
Каб пабудаваць пусты зрэз з даўжынёй, якая не роўная нулю, выкарыстоўвайце ўбудаванае ключавое слова «make».
22. Што такое памяць кучы?
Мы захоўваем дынамічна сфармаваныя аб'екты і зменныя ў кучы памяці. Калі мы больш не выкарыстоўваем аб'ект, мы звычайна выдаляем кучу памяці, якую ён займаў.
23. Што такое замыканне функцый?
Замыканне функцый - гэта тып значэнняў функцыі, якія ствараюць знешнія зменныя спасылкі. Функцыя мае доступ і кантроль над значэннямі зменных, на якія спасылаюцца.
У якасці ілюстрацыі: замыканне, якое вяртаецца adder(), прывязана да іншай зменнай сумы, на якую спасылаецца.
24. Што азначае аператар Goto Голанга?
Аператар goto функцыянуе як аператар пераходу ў Golang. Goto выкарыстоўваецца для прадастаўлення вызначанага кантролю над праграмай.
Яго можна выкарыстоўваць, каб прапусціць часткі кода і перайсці непасрэдна да неабходных аператараў, або яго можна выкарыстоўваць, каб паўтарыць частку праграмнага кода пры пэўных абставінах.
25. Што такое Lvalue і Rvalue у Golang?
Lзначэнне:
- Гэта намякае на месца памяці.
- Яго можна змяніць.
- Ён пазначае ідэнтыфікатар зменнай.
- Гэта можа адбыцца злева або справа ад аператара =.
- У радку x =20, напрыклад, x з'яўляецца l-значэннем, а 20 - r-значэннем.
Rзначэнне:
- Гэта азначае фіксаванае значэнне.
- Ён уяўляе сабой захаванае ў памяці значэнне даных.
- Ён заўсёды знаходзіцца справа ад аператара =.
- Выраз 10 = 20 з'яўляецца няправільным, напрыклад, таму што злева ад аператара = знаходзіцца значэнне r (10).
26. Што такое канструкцыі цыклаў у Go?
У Go ёсць толькі адзін цыклічны кампанент: цыкл for. Цыкл for складаецца з трох частак, падзеленых кропкай з коскі:
- Аператар Init выконваецца перад пачаткам цыкла. Часта гэта аб'ява зменнай, якая з'яўляецца толькі ў межах цыкла for.
- Перад кожнай ітэрацыяй аператар умовы ацэньваецца як лагічнае, каб вырашыць, ці трэба працягваць цыкл.
- Аператар паведамлення выконваецца ў канцы кожнай ітэрацыі.
27. Што такое шаблоны праектавання?
Шаблоны праектавання - гэта кавалкі кода, якія можна паўторна выкарыстоўваць для вырашэння агульных праблем з праграмным забеспячэннем. Калі вы выкарыстоўваеце шаблоны праектавання, вашы праекты будуць ствараць больш модульнае, маштабаванае і эфектыўнае праграмнае забеспячэнне. Шаблоны дызайну дапамагаюць вам пашыраць свае прыкладанні і працаваць з камандай. Распаўсюджаныя шаблоны праектавання ўключаюць Factory Method, Singleton, Facade і Decorator.
28. Які лепшы пакет Golang для простых файлавых аперацый? Якія дадатковыя пакеты Golang выкарыстоўваюцца для працы з файламі?
Інтэрфейс, незалежны ад платформы, забяспечваецца пакетам стандартнай бібліятэкі os. Узаемадзейнічаючы з файламі, мы выкарыстоўваем іх для сістэмных функцый. Інтэрфейс os павінен быць узгодненым ва ўсіх аперацыйных сістэмах.
У выніку прыкладанні, якія мы распрацоўваем, працуюць аднолькава ў Windows, Linux і Mac. Іншыя пакеты стандартнай бібліятэкі Go ўключаюць io, ioutil і bufio. Яны працуюць з файламі і дадаюць функцыянальнасць. Аднак яны не патрабуюцца для фундаментальных аперацый з файламі. Нам патрабуецца толькі пакет os.
29. Дайце тлумачэнне аб'ектна-арыентаванай архітэктуры Голанга.
Golang не выкарыстоўвае клас-аб'ектны дызайн як звычайны Аб'ектна-арыентаванае праграмаванне робіць. Замест гэтага складаныя структуры дадзеных і паводзіны захоўваюцца ў структурах і метадах.
Структура - гэта проста схема з планам дадзеных, якія будзе пераносіць структура. Структуры могуць выкарыстоўвацца для сімвалізацыі ідэй з рэальнага свету, такіх як кнігі, людзі або аўтамабілі.
30. Якія тыпы пераўтварэння падтрымлівае Golang?
Калі справа даходзіць да выразнага ўводу, Go вельмі пераборлівы. Аўтаматычнае пераўтварэнне тыпу не адбываецца. Каб пазначыць зменную аднаго тыпу ў іншы, пераўтварэнне тыпу павінна быць зроблена відавочна.
31. Апішыце прызначэнне і працу сцвярджэння тыпу.
У GO пераўтварэнне тыпаў выкарыстоўваецца для пераўтварэння розных тыпаў. Яўнае значэнне вызначанага тыпу здабываецца са значэння інтэрфейсу з дапамогай зацвярджэння тыпу.
32. Што такое тып структуры?
Структура складаецца са спісу названых кампанентаў, якія называюцца палямі. Для кожнай сферы ёсць свой від і назва. Іншы спосаб зразумець структуру як групу звязаных уласцівасцей. Яны карысныя для аб'яднання даных для стварэння запісаў.
33. Растлумачце рэзервовы масіў значэння зрэзу.
Калі мы ствараем зрэз, Go стварае сакрэтны масіў, які называецца рэзервовым або базавым масівам за кулісамі, і новая зменная тыпу зрэзу спасылаецца на яго. Элементы, а не зрэзы, захоўваюцца ў рэзервовым масіве.
Зрэзы рэалізаваны ў Go як структуры даных, званыя загалоўкамі зрэзаў, якія дзейнічаюць як прадстаўленне зрэзу падчас выканання.
34. Ці неабходна мець зменныя GOPATH і GOROOT, і калі так, то чаму?
Звычайна ні тое, ні другое не патрабуецца. Адзіная пераменная, якая павінна ўказваць на дрэва або дрэвы пакетаў Go, - гэта GOPATH.
GOROOT адносіцца да кораня хатняга каталога для мовы праграмавання Go, аднак амаль напэўна ён ужо ўсталяваны на месца бягучай устаноўкі Go.
Калі ў адной сістэме існуе мноства моўных версій Go або калі мова Go была спампавана ў выглядзе двайковага пакета з Інтэрнэту або перанесена з іншай машыны, трэба ўсталяваць зменную GOROOT.
35. Ці дазваляе Golang атрымаць спадчыну?
Наследаванне - гэта асноўнае паняцце ў аб'ектна-арыентаваным праграмаванні, якое адносіцца да перадачы уласцівасцей суперкласса базаваму класу.
Паколькі ў Golang адсутнічаюць класы, спадчыннасць ажыццяўляецца з дапамогай убудавання структур, і структуры не могуць быць непасрэдна пашыраны, мы павінны выкарыстоўваць ідэю кампазіцыі для стварэння новых аб'ектаў з дапамогай структуры.
36. Як выглядае CGo ў Golang?
З зыходнага файла Go з вызначанымі функцыямі cGo стварае файлы Go і C, якія можна аб'яднаць ва ўнікальны пакет Go. C адносіцца да «псеўда-пакета», які з'яўляецца іншай фразай, згенераванай cGo для абазначэння прасторы імёнаў C.
37. Што такое тып паказальніка ў Golang?
Літарна-лічбавыя абазначэнні або пазнакі для пэўных абласцей памяці вядомыя як зменныя. Тып зменнай, вядомы як паказальнік, захоўвае адрас памяці іншай зменнай.
Адрас зменнай прадстаўлены значэннем указальніка або нулем, калі зменная яшчэ не ўстаноўлена. Падобна таму, як зменная ўяўляе месца ў памяці значэння, паказальнік паказвае на гэты адрас.
заключэнне
Мэтай мовы праграмавання Golang было больш хуткае стварэнне эфектыўных праграм. Кампаніі пачалі выкарыстоўваць Golang, калі пачалі ўсведамляць яго перавагі.
Golang быў надзвычай эфектыўным у запальванні цікавасці распрацоўшчыкаў, павелічэнні іх базавага выкарыстання і, адпаведна, магчымасцях працаўладкавання. Адказы на вышэйзгаданыя пытанні, якія найбольш часта задаюць падчас інтэрв'ю ў Golang, могуць дапамагчы вам знайсці працу ў Golang, якую вы шукаеце.
паглядзець Серыя інтэрв'ю Хашдорка за дапамогу ў падрыхтоўцы да сумоўя.
Пакінуць каментар