មាតិកា[លាក់][បង្ហាញ]
- 1. ពិពណ៌នា Golang ។
- 2. តើ Go មានអត្ថប្រយោជន៍អ្វីជាងភាសាផ្សេងទៀត?
- 3. នៅក្នុងកម្មវិធី Golang តើ fmt ជាអ្វី?
- 4. តើ Go Interfaces ជាអ្វី?
- 5. តើព្យញ្ជនៈខ្សែអក្សរជាអ្វី?
- 6. តើបរិយាកាសការងារ និងប៉ារ៉ាម៉ែត្រត្រូវបានកំណត់យ៉ាងដូចម្តេចនៅក្នុងហ្គោឡាំង?
- 7. ពិពណ៌នាអំពីកញ្ចប់ Golang?
- 8. តើប្រភេទទិន្នន័យអ្វីខ្លះដែលត្រូវបានគាំទ្រដោយ Golang?
- 9. តើអ្នកមានន័យយ៉ាងណាចំពោះការប្រកាសប្រភេទឋិតិវន្តនៃអថេរនៅក្នុង Golang?
- 10. នៅក្នុង Golang តើការប្រកាសអថេរថាមវន្តគឺជាអ្វី?
- 11. តើខ្ញុំអាចប្រើប្រាស់កញ្ចប់ផ្ទាល់ខ្លួនក្នុងភាសាសរសេរកម្មវិធី GO យ៉ាងដូចម្តេច?
- 12. តើអ្វីទៅជាការប្រព្រឹត្តទៅវិញ? តើអ្នកអាចបញ្ឈប់វាដោយរបៀបណា?
- 13. ពិពណ៌នាអំពី rune មួយ។
- 14. តើពាក្យ Go ជាពាក្យតំណាងអ្វី?
- 15. តើប្រភេទរបស់អថេរត្រូវបានធីកនៅពេលដំណើរការដោយរបៀបណា?
- 16. ពិពណ៌នាអំពីឆានែល Go ។
- 17. ពន្យល់វិធីសាស្រ្ត Golang ។
- 18. តើការប្រណាំងទិន្នន័យជាអ្វី?
- 19. តើការប្រមូលសំរាម Go ជាអ្វី?
- 20. រៀបរាប់ពីដំណាក់កាលនៃការធ្វើតេស្តដោយប្រើ Golang ។
- 21. តើអ្វីជាចំណិតនៅក្នុង Go?
- 22. តើអ្វីទៅជាអង្គចងចាំហ៊ាប?
- 23. តើការបិទមុខងារជាអ្វី?
- 24. តើសេចក្តីថ្លែងការណ៍របស់ Golang មានន័យយ៉ាងណា?
- 25. នៅក្នុង Golang តើ Lvalue និង Rvalue ជាអ្វី?
- 26. នៅក្នុង Go តើការស្ថាបនារង្វិលជុំមានអ្វីខ្លះ?
- 27. តើអ្វីជាគំរូនៃការរចនា?
- 28. តើកញ្ចប់ Golang ល្អបំផុតសម្រាប់ប្រតិបត្តិការឯកសារសាមញ្ញគឺជាអ្វី? តើកញ្ចប់ Golang បន្ថែមអ្វីខ្លះដែលត្រូវបានប្រើសម្រាប់ការរៀបចំឯកសារ?
- 29. ផ្តល់ការពន្យល់អំពីស្ថាបត្យកម្មតម្រង់ទិសវត្ថុរបស់ Golang ។
- 30. តើការបំប្លែងប្រភេទណាដែល Golang គាំទ្រ?
- 31. ពិពណ៌នាអំពីគោលបំណង និងប្រតិបត្តិការនៃការអះអាងប្រភេទ។
- 32. តើប្រភេទរចនាសម្ព័ន្ធជាអ្វី?
- 33. ពន្យល់អារេខាងក្រោយនៃតម្លៃចំណិតមួយ។
- 34. តើចាំបាច់ត្រូវមានទាំងអថេរ GOPATH និង GOROOT ហើយប្រសិនបើដូច្នេះ ហេតុអ្វី?
- 35. តើ Golang អនុញ្ញាតឱ្យមានមរតកទេ?
- 36. នៅក្នុង Golang តើ CGo លេចឡើងយ៉ាងដូចម្តេច?
- 37. តើអ្វីទៅជាប្រភេទទ្រនិចនៅក្នុងហ្គោឡាំង?
- សន្និដ្ឋាន
ភាសាកម្មវិធី Go ដែលត្រូវបានគេស្គាល់ថាជា ហ្គូលាងគឺជាភាសាសរសេរកម្មវិធីប្រភពបើកចំហដែលអាចប្រៀបធៀបទៅនឹងភាសា C ប៉ុន្តែត្រូវបានរចនាឡើងសម្រាប់ការចងក្រងលឿន ភាពស្របគ្នារលូន និងភាពងាយស្រួលរបស់អ្នកអភិវឌ្ឍន៍។
ភាសានេះត្រូវបានបង្កើត និងប្រើប្រាស់ដោយ Google ប៉ុន្តែវាទទួលបានភាពទាក់ទាញនៅក្នុងក្រុមហ៊ុនផ្សេងទៀតក្នុងប៉ុន្មានឆ្នាំថ្មីៗនេះ ដោយសារតម្រូវការសម្រាប់កម្មវិធីបណ្តាញស្របគ្នា និងបានកើនឡើង។
Golang ធ្វើឱ្យការអភិវឌ្ឍន៍កាន់តែងាយស្រួលសម្រាប់អ្នកអភិវឌ្ឍន៍ ដោយផ្តល់ជូននូវការចងក្រងដ៏ល្អប្រសើរសម្រាប់ការអភិវឌ្ឍន៍កម្មវិធីកម្មវិធីរហ័ស ភាពស្របគ្នាកាន់តែរលូន ប្រសិទ្ធភាពពេលដំណើរការប្រសើរឡើង និងពិការភាពតិចជាងមុន។
Golang កំពុងក្លាយជាភាសាសរសេរកម្មវិធីសាជីវកម្មដ៏ពេញនិយមមួយយ៉ាងឆាប់រហ័ស ជាមួយនឹងជម្រើសការងារជាច្រើន។ បច្ចេកវិទ្យាព័ត៌មានវិទ្យាជាច្រើនដូចជា Google, Uber និង Apple ចូលចិត្ត Golang សម្រាប់ពេលវេលាអភិវឌ្ឍន៍ខ្លីរបស់វា ភាពងាយស្រួលនៃការសិក្សា ការបង្កើនរយៈពេលរត់ ការប្រមូលសំរាម និងអត្ថប្រយោជន៍ផ្សេងទៀត។
នៅពេលដែលក្រុមហ៊ុនកាន់តែច្រើនប្រើ Golang តម្រូវការសម្រាប់អ្នកសរសេរកម្មវិធី Golang កើនឡើង។ បន្ទាត់ខាងក្រោមបង្អស់? ការរៀន Golang នឹងផ្តល់នូវការរំពឹងទុកការងារជាច្រើន។
ប្រសិនបើអ្នកចង់ធ្វើការជាអ្នកអភិវឌ្ឍន៍ Golang អ្នកត្រូវតែរៀបចំឱ្យបានគ្រប់គ្រាន់សម្រាប់ការសម្ភាសន៍របស់អ្នក។ នោះហើយជាមូលហេតុដែលយើងចងក្រងបណ្តុំសំណួរសំភាសន៍ Golang ដ៏ទូលំទូលាយនេះ។
នៅក្នុងការប្រកាសនេះ យើងនឹងបង្ហាញនូវសំណួរសំភាសន៍ Golang ជាមូលដ្ឋានដល់កម្រិតខ្ពស់ ដូច្នេះអ្នកអាចទទួលបានយ៉ាងងាយស្រួលតាមរយៈការសម្ភាសន៍។
1. ពិពណ៌នា Golang ។
Go គឺជាកម្រិតខ្ពស់ គោលបំណងទូទៅ ភាសាសរសេរកម្មវិធី ដែលគាំទ្រការប្រមូលសំរាម និងការសរសេរកម្មវិធីស្របគ្នា ហើយត្រូវបានវាយបញ្ចូលយ៉ាងតឹងរ៉ឹង និងឋិតិវន្ត។ កម្មវិធី Go ត្រូវបានបង្កើតឡើងដោយការប្រើប្រាស់កញ្ចប់ ដែលផ្តល់នូវការគ្រប់គ្រងភាពអាស្រ័យប្រកបដោយប្រសិទ្ធភាព។
លើសពីនេះទៀត វាធ្វើឱ្យមានអត្ថប្រយោជន៍នៃវិធីសាស្រ្តចងក្រងតំណភ្ជាប់ដើម្បីបង្កើតប្រព័ន្ធគោលពីរដែលអាចប្រតិបត្តិបានពីកូដប្រភព។ Go គឺជាភាសាត្រង់ដែលមានរចនាសម្ព័ន្ធវាក្យសម្ព័ន្ធដ៏ស្រស់ស្អាត និងច្បាស់លាស់។
វាភ្ជាប់មកជាមួយសំណុំនៃបណ្ណាល័យស្ដង់ដារដ៏រឹងមាំដែលអាចត្រូវបានប្រើដោយអ្នកអភិវឌ្ឍន៍ដើម្បីដោះស្រាយបញ្ហាដោយមិនចាំបាច់មានតម្រូវការសម្រាប់កញ្ចប់ផ្សេងទៀត។
2. តើ Go មានអត្ថប្រយោជន៍អ្វីជាងភាសាផ្សេងទៀត?
- កូដ Go ត្រូវបានបង្កើតឡើងជាមួយនឹងការអនុវត្តជាក់ស្តែងនៅក្នុងចិត្ត ផ្ទុយពីភាសាផ្សេងទៀតដែលបានចាប់ផ្តើមជាការពិសោធន៍បញ្ញា។ រាល់ជម្រើសនៅក្នុងវាក្យសម្ព័ន្ធ និងលក្ខណៈពិសេសគឺធ្វើឡើងដោយគិតគូរពីភាពងាយស្រួលរបស់អ្នកសរសេរកម្មវិធី។
- ដោយសារការប្រមូលសំរាមដោយស្វ័យប្រវត្តិដំណើរការក្នុងពេលដំណាលគ្នាជាមួយកម្មវិធី វាមានប្រសិទ្ធភាពជាង Java ឬ Python ឆ្ងាយណាស់។
- លទ្ធភាពធ្វើមាត្រដ្ឋាន និងរូបិយបណ្ណត្រូវបានផ្តល់អាទិភាពនៅក្នុង Golang ។
- Golang ជាធម្មតាត្រូវបានចាត់ទុកថាអាចយល់បានច្រើនជាងភាសាផ្សេងទៀត ដោយសារវាមានរចនាសម្ព័ន្ធកូដស្តង់ដារតែមួយ។
3. នៅក្នុងកម្មវិធី Golang តើ fmt ជាអ្វី?
កញ្ចប់ទម្រង់ត្រូវបានតាងដោយនិមិត្តសញ្ញា fmt ។ អ្នកប្រើប្រាស់អាចប្រើប្រាស់មុខងារនេះដើម្បីធ្វើទ្រង់ទ្រាយអត្ថបទ គុណតម្លៃ ឬអ្វីផ្សេងទៀត ហើយបោះពុម្ពវា។
វាក៏អនុញ្ញាតឱ្យអ្នកប្រើប្រាស់ទទួលការបញ្ចូលស្ថានីយ សរសេរទៅឯកសារជាមួយអ្នកនិពន្ធ និងថែមទាំងបង្កើតសារកំហុសឆ្គងតាមតម្រូវការផងដែរ។ កញ្ចប់នេះគឺនិយាយអំពីការធ្វើទ្រង់ទ្រាយ បញ្ចូល និងលទ្ធផល។
4. តើ Go Interfaces ជាអ្វី?
ចំណុចប្រទាក់នៅក្នុង Go ខុសពីភាសាផ្សេង។ ចំណុចប្រទាក់ Go គឺជាប្រភេទពិសេសដែលត្រូវបានប្រើដើម្បីបង្ហាញពីបណ្តុំនៃហត្ថលេខាវិធីសាស្ត្រមួយ ឬច្រើន។
ចំណុចប្រទាក់ត្រូវបានបង្កើតឡើងដោយប្រើពាក្យ "ប្រភេទ" អមដោយឈ្មោះ និងចំណុចប្រទាក់ពាក្យគន្លឹះ។ ចំណុចប្រទាក់អាចត្រូវបានកំណត់ដូចខាងក្រោម:
- ការប្រមូលផ្ដុំនៃវិធីសាស្រ្ត
- ប្រភេទ
5. តើព្យញ្ជនៈខ្សែអក្សរជាអ្វី?
ខ្សែអក្សរព្យញ្ជនៈគឺជាខ្សែអក្សរថេរដែលផលិតដោយការភ្ជាប់អក្សរ។ ព្យញ្ជនៈខ្សែអក្សរឆៅ និងបកប្រែគឺជាព្យញ្ជនៈខ្សែពីរប្រភេទ។ ព្យញ្ជនៈខ្សែអក្សរឆៅត្រូវបានរុំព័ទ្ធដោយ backticks (foo) និងមានតួអក្សរ UTF-8 ដែលមិនអាចបកស្រាយបាន.
ព្យញ្ជនៈខ្សែអក្សរដែលត្រូវបានបកស្រាយគឺជាខ្សែអក្សរដែលសរសេរក្នុងសញ្ញាសម្រង់ទ្វេ និងរួមបញ្ចូលតួអក្សរណាមួយ លើកលែងតែបន្ទាត់ថ្មី និងសញ្ញាសម្រង់ពីរដែលមិនពេញលេញ។
6. តើបរិយាកាសការងារ និងប៉ារ៉ាម៉ែត្រត្រូវបានកំណត់យ៉ាងដូចម្តេចនៅក្នុងហ្គោឡាំង?
បរិយាកាសការងារ និងការកំណត់អាចត្រូវបានកំណត់រចនាសម្ព័ន្ធដោយប្រើ JSON ដែលត្រូវបានគេប្រើយ៉ាងទូលំទូលាយនាពេលបច្ចុប្បន្ននេះ។ ការពិតដែលថា JSON ត្រូវបានរួមបញ្ចូលនៅក្នុងបណ្ណាល័យស្តង់ដារគឺជាអត្ថប្រយោជន៍ចម្បងរបស់វា។
បណ្ណាល័យស្ដង់ដារផ្តល់នូវវិធីសាស្រ្តសរសេរសម្រាប់បំណង រចនាសម្ព័ន្ធទិន្នន័យដែលធ្វើឱ្យវាអាចអានបាន។ កញ្ចប់ YAML សម្រាប់ Go គឺជាជម្រើសបន្ថែម។
7. ពិពណ៌នាអំពីកញ្ចប់ Golang?
កញ្ចប់គឺជាថតដែលផ្ទុកកញ្ចប់ផ្សេងទៀត និងកូដប្រភពរបស់វានៅក្នុងកន្លែងធ្វើការ Go ។ កញ្ចប់ដែលបានភ្ជាប់រួមមានកូដទាំងអស់ រួមទាំងអថេរ មុខងារ និងប្រភេទ ដែលត្រូវបានសរសេរនៅក្នុងឯកសារប្រភព។
រាល់ឯកសារប្រភពគឺជាផ្នែកមួយនៃកញ្ចប់មួយ ហើយកញ្ចប់ទៅក៏អាចត្រូវបានរក្សាទុកនៅក្នុងកញ្ចប់ផងដែរ។
8. តើប្រភេទទិន្នន័យអ្វីខ្លះដែលត្រូវបានគាំទ្រដោយ Golang?
Golang ប្រើប្រភេទដូចខាងក្រោមៈ
- វិធីសាស្រ្ត
- ប៊ូលីន
- លេខ
- ខ្សែអក្សរ
- ចង្អុល
- មុខងារ
- ចំណុចប្រទាក់
- slice
- រចនាសម្ព័ន្ធ
- ផែនទី
- ឆានែល
- អារេ
9. តើអ្នកមានន័យយ៉ាងណាចំពោះការប្រកាសប្រភេទឋិតិវន្តនៃអថេរនៅក្នុង Golang?
កម្មវិធីចងក្រងអាចបន្តជាមួយនឹងការចងក្រងមួយផ្សេងទៀតដោយមិនចាំបាច់មានព័ត៌មានទូលំទូលាយនៃអថេរ អរគុណចំពោះការប្រកាសអថេរប្រភេទឋិតិវន្ត ដែលធានាវាឡើងវិញថាមានអថេរតែមួយគត់ដែលមានប្រភេទ និងឈ្មោះដែលបានផ្តល់ឱ្យ។
សេចក្តីប្រកាសអថេរគឺមានសារៈសំខាន់តែក្នុងអំឡុងពេលចងក្រង។ កម្មវិធីចងក្រងទាមទារអថេរពិតប្រាកដ និងការប្រកាសនៅពេលភ្ជាប់ទៅកម្មវិធី។
10. នៅក្នុង Golang តើការប្រកាសអថេរថាមវន្តគឺជាអ្វី?
អ្នកចងក្រងត្រូវតែពន្យល់ពីប្រភេទនៃអថេរនៅក្នុងប្រភេទថាមវន្តនៃការប្រកាសអថេរដោយផ្អែកលើចំនួនទឹកប្រាក់ដែលបានផ្ទេរទៅវា។ តាមលក្ខខណ្ឌតម្រូវ អ្នកចងក្រងមិនទាមទារអថេរមួយដើម្បីចាត់ថ្នាក់តាមបែបស្ថិតិទេ។
11. តើខ្ញុំអាចប្រើប្រាស់កញ្ចប់ផ្ទាល់ខ្លួនក្នុងភាសាសរសេរកម្មវិធី GO យ៉ាងដូចម្តេច?
ប្រសិនបើអ្នកកំពុងបង្កើតគម្រោង go get -table ដាច់ដោយឡែកសម្រាប់បណ្ណាល័យរបស់អ្នក ហើយវាសម្រាប់តែការប្រើប្រាស់ខាងក្នុងប៉ុណ្ណោះ អ្នកអាចសរសេរកូដដូចនេះបាន។
- ដាក់ថតឯកសារបណ្ណាល័យនៅក្រោមថតគម្រោងរបស់អ្នក។
- យោងទៅបណ្ណាល័យតាមផ្លូវរបស់វាទាក់ទងទៅនឹងឫសនៃកន្លែងធ្វើការដែលមានគម្រោង។
12. តើអ្វីទៅជាការប្រព្រឹត្តទៅវិញ? តើអ្នកអាចបញ្ឈប់វាដោយរបៀបណា?
goroutine គឺជាមុខងារ ឬនីតិវិធីដែលដំណើរការក្នុងពេលដំណាលគ្នាជាមួយ goroutines ផ្សេងទៀតនៅលើខ្សែស្រឡាយ goroutine ជាក់លាក់។ ខ្សែស្រឡាយ Goroutine គឺស្រាលជាងខ្សែស្រឡាយធម្មតា ហើយកម្មវិធី Golang ភាគច្រើនប្រើ goroutines រាប់ពាន់ក្នុងពេលដំណាលគ្នា។
ទម្លាប់មួយអាចត្រូវបានបញ្ឈប់ដោយការឆ្លងកាត់ឆានែលសញ្ញា។ Goroutines អាចឆ្លើយតបទៅនឹងសញ្ញាបានលុះត្រាតែពួកគេត្រូវបានដឹកនាំឱ្យពិនិត្យ ដូច្នេះរួមបញ្ចូលការត្រួតពិនិត្យនៅកន្លែងសមហេតុផលដូចជាផ្នែកខាងលើនៃរង្វិលជុំរបស់អ្នក។
13. ពិពណ៌នាអំពី rune មួយ។
នៅក្នុង Go, rune គឺជាប្រភេទដែលភ្ជាប់មកជាមួយឈ្មោះ int32។ យូនីកូដ CodePoint ដើរតួជា rune នៅក្នុង Go ។ មិនថាប៉ុន្មានបៃដែលចំណុចកូដត្រូវយកវាអាចត្រូវបានតំណាងដោយ rune ។
Runes មិនត្រូវបានតម្រូវឱ្យមានលំដាប់ក្នុងខ្សែមួយ។ ទោះបីជាយើងអាចបំប្លែងរវាង string និង rune ក៏ដោយ ក៏វាមិនដូចគ្នាដែរ។
14. តើពាក្យ Go ជាពាក្យតំណាងអ្វី?
ភាសាសរសេរកម្មវិធី Golang មិនគាំទ្រដោយផ្ទាល់ទេ។ Iota និង constants អាចត្រូវបានប្រើដើម្បីអនុវត្ត enums ។ វិធីសាស្រ្តខាងក្រោមណាមួយអាចត្រូវបានប្រើដើម្បីអនុវត្តប្រភេទដែលបានរាប់បញ្ចូល៖
- ការណែនាំប្រភេទចំនួនគត់ស្រស់
- Iota ត្រូវបានប្រើដើម្បីបង្ហាញពីតម្លៃរបស់វា។
- ដោយផ្តល់មុខងារ String ដល់ប្រភេទ
15. តើប្រភេទរបស់អថេរត្រូវបានធីកនៅពេលដំណើរការដោយរបៀបណា?
Type Switch គឺជាវិធីសាស្រ្តដ៏មានប្រសិទ្ធភាពបំផុតក្នុងការកំណត់ប្រភេទអថេរក្នុងពេលវេលាជាក់ស្តែង។ អថេរត្រូវបានវាយតម្លៃតាមប្រភេទជាជាងតម្លៃនៅពេលប្រើ Type Switch។
ទាំងករណីលំនាំដើម ដែលត្រូវបានប្រតិបត្តិប្រសិនបើករណីណាមួយមិនពិត ហើយយ៉ាងហោចណាស់ករណីមួយ ដែលបម្រើជាសេចក្តីថ្លែងការណ៍តាមលក្ខខណ្ឌ មានវត្តមាននៅក្នុងរាល់ Switch ។ ឧទាហរណ៍ អ្នកអាចរចនា Type Switch ដែលកំណត់ថាតើតម្លៃចំណុចប្រទាក់ដែលខ្ញុំរួមបញ្ចូលគឺជាប្រភេទ int ឬខ្សែអក្សរ៖
16. ពិពណ៌នាអំពីឆានែល Go ។
ឆានែល go បើកការបញ្ជូនទិន្នន័យ និងផ្ទេររវាង goroutines ។ ទិន្នន័យនៃប្រភេទដូចគ្នាអាចត្រូវបានផ្ញើឆ្លងកាត់ឆានែលមួយ។
Goroutines អាចផ្ញើ និងទទួលទិន្នន័យនៅលើឆានែលដូចគ្នា ដោយសារតែលំហូរទិន្នន័យទ្វេទិសរបស់ឆានែល។
17. ពន្យល់វិធីសាស្រ្ត Golang ។
Golang មិនផ្តល់ថ្នាក់រៀនទេ ប៉ុន្តែមានវិធីសាស្រ្តគាំទ្រ។ វិធីសាស្រ្តទាំងនេះគឺដូចគ្នាបេះបិទទៅនឹងមុខងារ លើកលែងតែវិធីសាស្ត្រ Go មានប៉ារ៉ាម៉ែត្រអ្នកទទួល។
វិធីសាស្ត្រ Go មានសិទ្ធិចូលប្រើគុណលក្ខណៈរបស់អ្នកទទួលតាមរយៈប៉ារ៉ាម៉ែត្រអ្នកទទួល។ វិធីសាស្ត្រ Go ដែលត្រូវបានគេស្គាល់ថាជាមុខងារអ្នកទទួល ជំនួយក្នុងការបង្ហាញគំនិតដែលត្រឹមត្រូវ និងពិតប្រាកដជាងនេះ។
18. តើការប្រណាំងទិន្នន័យជាអ្វី?
ការបំបាត់កំហុសទូទៅបំផុត និងពិបាកបំផុតគឺការប្រណាំងទិន្នន័យ។ ការចូលដំណើរការដែលមិនសមកាលកម្មទៅកាន់អង្គចងចាំដែលបានចែករំលែក ឬការប្រតិបត្តិនៃ goroutines ជាច្រើនក្នុងពេលតែមួយដោយមិនមានការគ្រប់គ្រងដាច់ដោយឡែក នាំឱ្យមានបញ្ហាក្នុងការប្រណាំងទិន្នន័យ។
19. តើការប្រមូលសំរាម Go ជាអ្វី?
ការប្រមូលសំរាមកំណត់ទំហំផ្ទុកឡើងវិញដែលត្រូវបានកំណត់ថាមវន្តទៅកម្មវិធីសម្រាប់ប្រើប្រាស់ដោយវត្ថុផ្សេងទៀត។ ពាក្យនេះច្រើនតែសំដៅលើការបង្កើតឡើងវិញដោយស្វ័យប្រវត្តិរបស់អ្នកប្រមូលកាកសំណល់សម្រាប់ការផ្ទុកជាប្រចាំ ជាជាងកូដច្បាស់លាស់ (ផ្តល់ដោយអ្នកសរសេរកម្មវិធី) ដើម្បីបញ្ចេញប្លុកអង្គចងចាំជាក់លាក់។
ការប្រមូលសំរាមដោយស្វ័យប្រវត្តិត្រូវបានចាប់ផ្តើមជាញឹកញាប់នៅពេលដែលបរិមាណនៃ RAM ឥតគិតថ្លៃធ្លាក់ចុះក្រោមកម្រិតដែលបានកំណត់ជាមុន ឬបន្ទាប់ពីចំនួនការបែងចែកជាក់លាក់។
ការលុបបំបាត់ធាតុដែលកម្មវិធីលែងត្រូវការដើម្បីបង្កើតកន្លែងនៅក្នុងអង្គចងចាំសម្រាប់វត្ថុដែលមានថាមពលច្រើនត្រូវបានគេហៅថា "ការប្រមូលសំរាម" ។
20. រៀបរាប់ពីដំណាក់កាលនៃការធ្វើតេស្តដោយប្រើ Golang ។
Golang ផ្តល់នូវការធ្វើតេស្តដោយស្វ័យប្រវត្តិនៃកញ្ចប់ដោយប្រើឈុតសាកល្បងផ្ទាល់ខ្លួន។ ដើម្បីបង្កើតឈុតថ្មី បង្កើតឯកសារដែលបញ្ចប់ដោយ _test.go និងរួមបញ្ចូលមុខងារ TestXxx ដែល Xxx ត្រូវបានជំនួសដោយឈ្មោះមុខងារដែលអ្នកកំពុងសាកល្បង។
ឧទាហរណ៍ មុខងារដែលសាកល្បងសមត្ថភាពចូលនឹងត្រូវបានដាក់ឈ្មោះថា TestLogin ។ បន្ទាប់មកឯកសារឈុតសាកល្បងត្រូវបានបញ្ចូលក្នុងកញ្ចប់ដូចគ្នានឹងឯកសារដែលកំពុងធ្វើតេស្ត។
ឯកសារសាកល្បងនឹងត្រូវបានរំលងកំឡុងពេលប្រតិបត្តិធម្មតា ប៉ុន្តែនឹងដំណើរការនៅពេលដែលអ្នកបញ្ចូលពាក្យបញ្ជា go test។
21. តើអ្វីជាចំណិតនៅក្នុង Go?
Slices គឺជាប្រភេទទិន្នន័យ Go ដ៏សំខាន់ដែលផ្តល់នូវចំណុចប្រទាក់ដ៏មានឥទ្ធិពលសម្រាប់លំដាប់ជាងអារេ។ Slices មិនដូចអារេទេគឺត្រូវបានវាយទាំងស្រុងអាស្រ័យលើធាតុដែលវាមាន (មិនមែនចំនួនធាតុ)។
ដើម្បីបង្កើតបំណែកទទេដែលមានប្រវែងមិនសូន្យ សូមប្រើពាក្យគន្លឹះ "បង្កើត" ដែលភ្ជាប់មកជាមួយ។
22. តើអ្វីទៅជាអង្គចងចាំហ៊ាប?
យើងរក្សាទុកវត្ថុ និងអថេរដែលបានបង្កើតថាមវន្តនៅក្នុងអង្គចងចាំ heap ។ នៅពេលដែលយើងលែងប្រើវត្ថុមួយ យើងជាធម្មតាលុបអង្គចងចាំ heap ដែលវាកាន់កាប់។
23. តើការបិទមុខងារជាអ្វី?
ការបិទមុខងារគឺជាប្រភេទនៃតម្លៃមុខងារដែលបង្កើតអថេរយោងខាងក្រៅ។ មុខងារមានសិទ្ធិចូលប្រើ និងគ្រប់គ្រងលើតម្លៃរបស់អថេរដែលបានយោង។
ជាឧទាហរណ៍ ការបិទដែលត្រឡប់ដោយ adder() នីមួយៗត្រូវបានចងភ្ជាប់ជាមួយអថេរផលបូកយោងផ្សេងគ្នា។
24. តើសេចក្តីថ្លែងការណ៍របស់ Golang មានន័យយ៉ាងណា?
សេចក្តីថ្លែងការណ៍ Goto មានមុខងារជាសេចក្តីថ្លែងការណ៍លោតនៅក្នុង Golang ។ Goto ត្រូវបានប្រើដើម្បីផ្តល់ការត្រួតពិនិត្យស្លាកដែលបានបញ្ជាក់លើកម្មវិធី។
វាអាចត្រូវបានប្រើដើម្បីរំលងផ្នែកខ្លះនៃកូដ ហើយទៅខាងស្តាំទៅកាន់សេចក្តីថ្លែងការចាំបាច់ ឬវាអាចត្រូវបានប្រើដើម្បីនិយាយឡើងវិញនូវផ្នែកនៃកូដកម្មវិធីដែលបានផ្តល់ឱ្យនូវកាលៈទេសៈជាក់លាក់មួយ។
25. នៅក្នុង Golang តើ Lvalue និង Rvalue ជាអ្វី?
តម្លៃ៖
- វាសំដៅទៅលើកន្លែងចងចាំ។
- វាអាចត្រូវបានផ្លាស់ប្តូរ។
- វាបង្ហាញពីអត្តសញ្ញាណអថេរ។
- វាអាចកើតឡើងនៅខាងឆ្វេង ឬខាងស្តាំនៃ = operator ។
- នៅក្នុងបន្ទាត់ x = 20 ឧទាហរណ៍ x គឺជា lvalue និង 20 គឺជា rvalue ។
តម្លៃ៖
- វាបង្ហាញពីតម្លៃថេរ។
- វាតំណាងឱ្យតម្លៃទិន្នន័យដែលរក្សាទុកដោយអង្គចងចាំ។
- វាតែងតែកើតឡើងនៅខាងស្តាំនៃ = operator ។
- កន្សោម 10 = 20 គឺមិនត្រឹមត្រូវ ជាឧទាហរណ៍ ដោយសារមាន rvalue (10) នៅខាងឆ្វេងនៃ = operator ។
26. នៅក្នុង Go តើការស្ថាបនារង្វិលជុំមានអ្វីខ្លះ?
មានសមាសភាគរង្វិលជុំតែមួយនៅក្នុង Go: សម្រាប់រង្វិលជុំ។ សម្រាប់រង្វិលជុំត្រូវបានបង្កើតឡើងដោយបីផ្នែកដែលបំបែកដោយសញ្ញាក្បៀស៖
- សេចក្តីថ្លែងការណ៍ Init ត្រូវបានដំណើរការមុនពេលរង្វិលជុំចាប់ផ្តើម។ ជាញឹកញាប់វាជាការប្រកាសអថេរដែលបង្ហាញតែក្នុងវិសាលភាពនៃរង្វិលជុំ។
- មុនពេលធ្វើម្តងទៀតនីមួយៗ សេចក្តីថ្លែងការណ៍លក្ខខណ្ឌត្រូវបានវាយតម្លៃជាប៊ូលីន ដើម្បីសម្រេចថាតើរង្វិលជុំគួរតែបន្តឬអត់។
- សេចក្តីថ្លែងការប្រកាសត្រូវបានដំណើរការនៅចុងបញ្ចប់នៃការធ្វើម្តងទៀតនីមួយៗ។
27. តើអ្វីជាគំរូនៃការរចនា?
គំរូរចនាគឺជាបំណែកនៃកូដដែលអាចត្រូវបានប្រើឡើងវិញដើម្បីដោះស្រាយបញ្ហាកម្មវិធីទូទៅ។ ប្រសិនបើអ្នកប្រើគំរូរចនា គម្រោងរបស់អ្នកនឹងបង្កើតកម្មវិធីម៉ូឌុល ដែលអាចធ្វើមាត្រដ្ឋានបាន និងមានប្រសិទ្ធភាពជាងមុន។ គំរូរចនាជួយអ្នកក្នុងការពង្រីកកម្មវិធីរបស់អ្នក និងធ្វើការជាមួយក្រុម។ គំរូរចនាទូទៅរួមមាន Factory Method, Singleton, Facade និង Decorator។
28. តើកញ្ចប់ Golang ល្អបំផុតសម្រាប់ប្រតិបត្តិការឯកសារសាមញ្ញគឺជាអ្វី? តើកញ្ចប់ Golang បន្ថែមអ្វីខ្លះដែលត្រូវបានប្រើសម្រាប់ការរៀបចំឯកសារ?
ចំណុចប្រទាក់ឯករាជ្យនៃវេទិកាត្រូវបានផ្តល់ដោយកញ្ចប់បណ្ណាល័យស្តង់ដារ os ។ នៅពេលធ្វើអន្តរកម្មជាមួយឯកសារ យើងប្រើពួកវាសម្រាប់មុខងារប្រព័ន្ធ។ ចំណុចប្រទាក់ os មានន័យថាត្រូវគ្នានឹងប្រព័ន្ធប្រតិបត្តិការទាំងអស់។
ជាលទ្ធផល កម្មវិធីដែលយើងបង្កើតដំណើរការដូចគ្នានៅលើ Windows, Linux និង Mac។ កញ្ចប់បណ្ណាល័យស្តង់ដារ Go ផ្សេងទៀតរួមមាន io, ioutil និង bufio ។ ពួកវាដំណើរការជាមួយឯកសារ និងបន្ថែមមុខងារ។ ទោះយ៉ាងណាក៏ដោយ ពួកគេមិនត្រូវបានទាមទារសម្រាប់ប្រតិបត្តិការឯកសារជាមូលដ្ឋានទេ។ យើងត្រូវការតែកញ្ចប់ os ប៉ុណ្ណោះ។
29. ផ្តល់ការពន្យល់អំពីស្ថាបត្យកម្មតម្រង់ទិសវត្ថុរបស់ Golang ។
Golang មិនប្រើការរចនាវត្ថុថ្នាក់ដូចធម្មតាទេ។ កម្មវិធីតម្រង់ទិសវត្ថុ ធ្វើ រចនាសម្ព័ន្ធទិន្នន័យ និងឥរិយាបទស្មុគស្មាញ ជំនួសមកវិញនៅក្នុង structs និង method ។
រចនាសម្ព័ន្ធគឺគ្រាន់តែជាគ្រោងការណ៍ដែលមានប្លង់មេសម្រាប់ទិន្នន័យដែលរចនាសម្ព័ន្ធនឹងអនុវត្ត។ រចនាសម្ព័ន្ធអាចត្រូវបានប្រើដើម្បីតំណាងឱ្យគំនិតពីពិភពលោកជាក់ស្តែងដូចជាសៀវភៅ មនុស្ស ឬរថយន្ត។
30. តើការបំប្លែងប្រភេទណាដែល Golang គាំទ្រ?
នៅពេលនិយាយអំពីការវាយអក្សរច្បាស់ Go គឺជ្រើសរើសយ៉ាងខ្លាំង។ គ្មានការបំប្លែងប្រភេទត្រូវបានធ្វើដោយស្វ័យប្រវត្តិទេ។ ដើម្បីកំណត់អថេរនៃប្រភេទមួយទៅមួយទៀត ការបំប្លែងប្រភេទត្រូវតែធ្វើឱ្យបានច្បាស់លាស់។
31. ពិពណ៌នាអំពីគោលបំណង និងប្រតិបត្តិការនៃការអះអាងប្រភេទ។
នៅក្នុង GO ការបំប្លែងប្រភេទត្រូវបានប្រើដើម្បីបំប្លែងប្រភេទផ្សេងគ្នា។ តម្លៃជាក់លាក់នៃប្រភេទដែលបានបញ្ជាក់ត្រូវបានស្រង់ចេញពីតម្លៃចំណុចប្រទាក់ដោយការអះអាងប្រភេទមួយ។
32. តើប្រភេទរចនាសម្ព័ន្ធជាអ្វី?
រចនាសម្ព័ន្ធមានបញ្ជីនៃសមាសភាគដែលមានឈ្មោះហៅថាវាល។ មានប្រភេទ និងឈ្មោះសម្រាប់គ្រប់វិស័យ។ វិធីមួយទៀតដើម្បីបង្កើតរចនាសម្ព័ន្ធគឺដូចជាក្រុមនៃលក្ខណៈសម្បត្តិដែលតភ្ជាប់។ ពួកវាមានប្រយោជន៍សម្រាប់ការរួមបញ្ចូលទិន្នន័យដើម្បីបង្កើតកំណត់ត្រា។
33. ពន្យល់អារេខាងក្រោយនៃតម្លៃចំណិតមួយ។
នៅពេលដែលយើងបង្កើតផ្នែកមួយ Go បង្កើតអារេសម្ងាត់មួយហៅថា backing ឬ underlying array នៅពីក្រោយឆាក ហើយប្រភេទ slice ថ្មីនេះយោងអថេរចំពោះវា។ ធាតុមិនមែនជាចំណិតត្រូវបានរក្សាទុកក្នុងអារេខាងក្រោយ។
Slices ត្រូវបានអនុវត្តក្នុង Go ជារចនាសម្ព័ន្ធទិន្នន័យដែលហៅថាបឋមកថាចំណិតដែលដើរតួជាតំណាងពេលរត់នៃចំណែក។
34. តើចាំបាច់ត្រូវមានទាំងអថេរ GOPATH និង GOROOT ហើយប្រសិនបើដូច្នេះ ហេតុអ្វី?
ជាធម្មតាវាមិនចាំបាច់ទេ។ អថេរតែមួយគត់ដែលត្រូវកំណត់ដើម្បីចង្អុលទៅមែកធាងកញ្ចប់ Go ឬដើមឈើគឺ GOPATH ។
GOROOT សំដៅលើឫសគល់នៃថតផ្ទះសម្រាប់ភាសាកម្មវិធី Go ទោះយ៉ាងណាក៏ដោយ វាស្ទើរតែត្រូវបានកំណត់រួចហើយចំពោះទីតាំងនៃការដំឡើង Go បច្ចុប្បន្ន។
ប្រសិនបើមានកំណែភាសា Go ជាច្រើននៅលើប្រព័ន្ធដូចគ្នា ឬប្រសិនបើភាសា Go ត្រូវបានទាញយកជាកញ្ចប់គោលពីរពីអ៊ីនធឺណិត ឬផ្លាស់ទីពីម៉ាស៊ីនផ្សេងទៀត អថេរ GOROOT ត្រូវតែកំណត់។
35. តើ Golang អនុញ្ញាតឱ្យមានមរតកទេ?
Inheritance គឺជាសញ្ញាណជាមូលដ្ឋានក្នុងការសរសេរកម្មវិធីតម្រង់ទិសវត្ថុដែលសំដៅលើការបញ្ជូនលក្ខណៈសម្បត្តិរបស់ superclass ទៅថ្នាក់មូលដ្ឋាន។
ដោយសារ Golang ខ្វះថ្នាក់ មរតកត្រូវបានសម្រេចដោយប្រើការបង្កប់រចនាសម្ព័ន្ធ ហើយរចនាសម្ព័ន្ធមិនអាចពង្រីកដោយផ្ទាល់បានទេ យើងត្រូវប្រើគំនិតនៃសមាសភាពដើម្បីបង្កើតវត្ថុថ្មីជាមួយរចនាសម្ព័ន្ធ។
36. នៅក្នុង Golang តើ CGo លេចឡើងយ៉ាងដូចម្តេច?
ពីឯកសារប្រភព Go ដែលមានលក្ខណៈពិសេសដែលបានកំណត់ cGo បង្កើតឯកសារ Go និង C ដែលអាចបញ្ចូលទៅក្នុងកញ្ចប់ Go តែមួយគត់។ C សំដៅលើ “pseudo-package” ដែលជាឃ្លាផ្សេងដែលបង្កើតដោយ cGo ដើម្បីយោងទៅលើ namespace របស់ C ។
37. តើអ្វីទៅជាប្រភេទទ្រនិចនៅក្នុងហ្គោឡាំង?
ការកំណត់អក្សរក្រមលេខ ឬស្លាកសម្រាប់តំបន់អង្គចងចាំជាក់លាក់ត្រូវបានគេស្គាល់ថាជាអថេរ។ ប្រភេទនៃអថេរដែលគេស្គាល់ថាជាទ្រនិចផ្ទុកអាសយដ្ឋានអង្គចងចាំរបស់អថេរមួយផ្សេងទៀត។
អាស័យដ្ឋានរបស់អថេរត្រូវបានតំណាងដោយតម្លៃទ្រនិច ឬ nil ប្រសិនបើអថេរមិនទាន់ត្រូវបានបង្កើតឡើង។ ដូចអថេរតំណាងឱ្យទីតាំងអង្គចងចាំរបស់តម្លៃ ទ្រនិចចង្អុលទៅអាសយដ្ឋាននោះ។
សន្និដ្ឋាន
គោលដៅនៃភាសាសរសេរកម្មវិធី Golang គឺដើម្បីបង្កើតកម្មវិធីដែលមានប្រសិទ្ធភាពកាន់តែលឿន។ ក្រុមហ៊ុនបានចាប់ផ្តើមប្រើប្រាស់ Golang នៅពេលដែលពួកគេចាប់ផ្តើមដឹងពីលទ្ធភាពដ៏មានប្រយោជន៍របស់វា។
Golang មានប្រសិទ្ធភាពខ្លាំងក្នុងការបញ្ឆេះចំណាប់អារម្មណ៍របស់អ្នកអភិវឌ្ឍន៍ បង្កើនការប្រើប្រាស់មូលដ្ឋានរបស់ពួកគេ ហើយជាលទ្ធផល ឱកាសការងារ។ ចម្លើយចំពោះសំណួរដែលបានរៀបរាប់ខាងលើ ដែលជាសំណួរញឹកញាប់បំផុតដែលត្រូវបានសួរក្នុងអំឡុងពេលសម្ភាសន៍ Golang អាចជួយអ្នកឱ្យទទួលបានការងារ Golang ដែលអ្នកកំពុងធ្វើ។
សូមមើល ស៊េរីសម្ភាសន៍របស់ Hashdork សម្រាប់ជំនួយក្នុងការរៀបចំសម្ភាសន៍។
សូមផ្ដល់យោបល់