Daftar Isi[Bersembunyi][Menunjukkan]
- 1. Jelaskan Golang.
- 2. Apa kelebihan Go dibandingkan bahasa lain?
- 3. Dalam pemrograman Golang, apa itu fmt?
- 4. Apa sebenarnya Go Interface itu?
- 5. Apa sebenarnya string literal itu?
- 6. Bagaimana lingkungan kerja dan parameter dikonfigurasi di Golang?
- 7. Jelaskan paket Golang?
- 8. Tipe data apa yang didukung oleh Golang?
- 9. Apa yang Anda maksud dengan deklarasi tipe statis variabel di Golang?
- 10. Di Golang, apa yang dimaksud dengan deklarasi variabel dinamis?
- 11. Bagaimana saya bisa menggunakan paket khusus dalam bahasa pemrograman GO?
- 12. Apa sebenarnya goroutine itu? Bagaimana Anda bisa menghentikannya?
- 13. Jelaskan sebuah rune.
- 14. Apa idiom Go untuk mewakili enum?
- 15. Bagaimana tipe variabel diperiksa saat runtime?
- 16. Jelaskan saluran Go.
- 17. Jelaskan Metode Golang.
- 18. Apa sebenarnya data race itu?
- 19. Apa sebenarnya pengumpulan sampah Go?
- 20. Jelaskan tahapan pengujian menggunakan Golang.
- 21. Apa sebenarnya irisan di Go?
- 22. Apa sebenarnya memori tumpukan itu?
- 23. Apa sebenarnya penutupan fungsi?
- 24. Apa yang dimaksud dengan pernyataan goto Golang?
- 25. Di Golang, apa itu Lvalue dan Rvalue?
- 26. Dalam Go, apakah konstruksi perulangan itu?
- 27. Apa sebenarnya pola desain itu?
- 28. Apa paket Golang terbaik untuk operasi file sederhana? Paket Golang tambahan apa yang digunakan untuk manipulasi file?
- 29. Memberikan penjelasan tentang Arsitektur Berorientasi Objek Golang.
- 30. Jenis konversi apa yang didukung Golang?
- 31. Jelaskan tujuan dan operasi dari pernyataan Tipe.
- 32. Apa sebenarnya tipe struct itu?
- 33. Menjelaskan backing array dari nilai slice.
- 34. Apakah perlu memiliki variabel GOPATH dan GOROOT, dan jika ya, mengapa?
- 35. Apakah Golang memungkinkan pewarisan?
- 36. Di Golang, bagaimana CGo muncul?
- 37. Apa jenis pointer di Golang?
- Kesimpulan
Bahasa pemrograman Go, sering dikenal sebagai Golang, adalah bahasa pemrograman sumber terbuka yang sebanding dengan C tetapi dirancang untuk kompilasi yang cepat, konkurensi yang lancar, dan kenyamanan pengembang.
Bahasa ini dikembangkan dan digunakan oleh Google, tetapi telah mendapatkan daya tarik di perusahaan lain dalam beberapa tahun terakhir karena permintaan untuk pemrograman jaringan secara bersamaan telah berkembang.
Golang membuat pengembangan lebih mudah bagi pengembang dengan menawarkan kompilasi optimal untuk pengembangan aplikasi perangkat lunak yang cepat, konkurensi yang lebih lancar, efisiensi runtime yang ditingkatkan, dan lebih sedikit cacat.
Golang dengan cepat menjadi bahasa pemrograman korporat yang populer, dengan beberapa pilihan pekerjaan. Banyak raksasa TI, seperti Google, Uber, dan Apple, menyukai Golang karena waktu pengembangannya yang lebih singkat, kemudahan belajar, waktu proses yang ditingkatkan, pengumpulan sampah, dan manfaat lainnya.
Karena semakin banyak perusahaan yang menggunakan Golang, kebutuhan akan programmer Golang semakin meningkat. Garis bawah? Belajar Golang akan memberikan beberapa prospek pekerjaan.
Jika Anda ingin bekerja sebagai pengembang Golang, Anda harus mempersiapkan diri dengan baik untuk wawancara Anda. Itulah sebabnya kami menyusun kumpulan pertanyaan wawancara Golang yang komprehensif ini.
Dalam postingan kali ini, kami akan menyajikan pertanyaan wawancara Golang dasar hingga lanjutan, sehingga Anda dapat dengan mudah melewati wawancara.
1. Jelaskan Golang.
Go adalah tujuan umum tingkat tinggi bahasa pemrograman yang mendukung pengumpulan sampah dan pemrograman bersamaan dan diketik dengan sangat ketat dan statis. Aplikasi Go dibuat dengan memanfaatkan paket, yang menyediakan manajemen ketergantungan yang efektif.
Selain itu, ini memanfaatkan pendekatan compile-link untuk membuat binari yang dapat dieksekusi dari kode sumber. Go adalah bahasa yang lugas dengan struktur sintaksis yang indah dan jelas.
Muncul dengan satu set perpustakaan standar yang kuat yang dapat digunakan oleh pengembang untuk memecahkan masalah tanpa persyaratan untuk paket lain.
2. Apa kelebihan Go dibandingkan bahasa lain?
- Kode Go dikembangkan dengan mempertimbangkan kepraktisan, berbeda dengan bahasa lain yang dimulai sebagai eksperimen intelektual. Setiap pilihan dalam sintaks dan fitur dibuat dengan mempertimbangkan kenyamanan programmer.
- Karena pengumpulan sampah otomatis berjalan bersamaan dengan aplikasi, ini jauh lebih efektif daripada Java atau Python.
- Skalabilitas dan konkurensi keduanya diprioritaskan di Golang.
- Golang biasanya dianggap lebih mudah dipahami daripada bahasa lain karena memiliki satu struktur kode standar.
3. Dalam pemrograman Golang, apa itu fmt?
Paket Format dilambangkan dengan simbol fmt. Pengguna dapat memanfaatkan fungsi ini untuk memformat teks dasar, nilai, atau apa pun dan mencetaknya.
Ini juga memungkinkan pengguna untuk menerima input terminal, menulis ke file dengan penulis, dan bahkan membuat pesan kesalahan mewah yang dipesan lebih dahulu. Paket ini adalah tentang memformat input dan output.
4. Apa sebenarnya Go Interface itu?
Antarmuka di Go berbeda dari yang ada di bahasa lain. Antarmuka Go adalah tipe khusus yang digunakan untuk mengekspresikan kumpulan satu atau lebih tanda tangan metode.
Antarmuka dibentuk dengan menggunakan istilah "jenis", diikuti dengan nama dan kata kunci antarmuka. Antarmuka dapat didefinisikan sebagai berikut:
- kumpulan metode
- Tipe
5. Apa sebenarnya string literal itu?
Literal string adalah konstanta string yang dihasilkan dengan menggabungkan huruf. Literal string mentah dan ditafsirkan adalah dua jenis literal string. Literal string mentah diapit oleh backticks (foo) dan berisi karakter UTF-8 yang tidak ditafsirkan.
Literal string yang ditafsirkan adalah string yang ditulis dalam tanda kutip ganda dan termasuk karakter apa pun kecuali baris baru dan tanda kutip ganda tidak lengkap.
6. Bagaimana lingkungan kerja dan parameter dikonfigurasi di Golang?
Lingkungan dan pengaturan kerja dapat dikonfigurasi menggunakan JSON, yang banyak digunakan saat ini. Fakta bahwa JSON termasuk dalam pustaka standar adalah manfaat utamanya.
Pustaka standar menyediakan metode penulisan untuk yang dimaksud struktur data, yang membuatnya sangat mudah dibaca. Paket YAML untuk Go adalah pilihan tambahan.
7. Jelaskan paket Golang?
Paket adalah folder yang menampung paket lain dan kode sumbernya di ruang kerja Go. Paket tertaut mencakup semua kode, termasuk variabel, fungsi, dan tipe, yang ditulis dalam file sumber.
Setiap file sumber adalah bagian dari sebuah paket, dan paket go juga dapat disimpan di dalam paket.
8. Tipe data apa yang didukung oleh Golang?
Golang menggunakan jenis berikut:
- metode
- Boolean
- Numeric
- Tali
- Petunjuk
- fungsi
- Antarmuka
- Iris
- Struktur
- Lokasi
- Saluran
- susunan
9. Apa yang Anda maksud dengan deklarasi tipe statis variabel di Golang?
Kompilator dapat melanjutkan kompilasi lain tanpa perlu memiliki informasi lengkap tentang variabel berkat deklarasi variabel tipe statis, yang meyakinkannya bahwa hanya ada satu variabel dengan jenis dan nama yang diberikan.
Deklarasi variabel hanya penting selama kompilasi; kompiler membutuhkan variabel dan deklarasi nyata saat menghubungkan ke aplikasi.
10. Di Golang, apa yang dimaksud dengan deklarasi variabel dinamis?
Kompilator harus menjelaskan jenis variabel dalam jenis deklarasi variabel dinamis berdasarkan jumlah yang ditransfer ke dalamnya. Sebagai kondisi yang diperlukan, kompiler tidak memerlukan variabel untuk dikategorikan secara statis.
11. Bagaimana saya bisa menggunakan paket khusus dalam bahasa pemrograman GO?
Jika Anda membuat proyek go get -table terpisah untuk perpustakaan Anda dan itu hanya untuk penggunaan internal, Anda dapat menulis kode seperti ini.
- Tempatkan direktori file perpustakaan di bawah direktori proyek Anda.
- Lihat pustaka menurut jalurnya relatif terhadap akar ruang kerja yang berisi proyek.
12. Apa sebenarnya goroutine itu? Bagaimana Anda bisa menghentikannya?
Sebuah goroutine adalah sebuah fungsi atau prosedur yang berjalan secara simultan dengan goroutine lain pada sebuah thread goroutine khusus. Thread goroutine lebih ringan dari thread biasa, dan sebagian besar aplikasi Golang menggunakan ribuan goroutine secara bersamaan.
Sebuah goroutine dapat dihentikan dengan melewatkan sebuah saluran sinyal. Goroutine hanya dapat merespons sinyal jika diarahkan untuk memeriksa, oleh karena itu sertakan pemeriksaan di tempat yang wajar seperti bagian atas loop for Anda.
13. Jelaskan sebuah rune.
Di Go, rune adalah tipe bawaan dengan nama int32. Unicode CodePoint berfungsi sebagai rune di Go. Tidak peduli berapa banyak byte yang digunakan oleh codepoint, itu dapat diwakili oleh rune.
Rune tidak harus berurutan dalam sebuah string. Meskipun kita dapat mengkonversi antara string dan rune, mereka tidak sama.
14. Apa idiom Go untuk mewakili enum?
Bahasa pemrograman Golang tidak secara langsung mendukung enum. Iota dan konstanta dapat digunakan untuk mengimplementasikan enum. Salah satu dari pendekatan berikut dapat digunakan untuk mengimplementasikan tipe enumerasi:
- memperkenalkan tipe integer baru
- Iota digunakan untuk menunjukkan nilainya.
- Dengan menyediakan fungsi String ke tipe
15. Bagaimana tipe variabel diperiksa saat runtime?
Type Switch adalah pendekatan paling efektif untuk menentukan tipe variabel secara real-time. Variabel dievaluasi berdasarkan tipe daripada nilai saat menggunakan Sakelar Tipe.
Kedua kasus default, yang dijalankan jika tidak ada kasus yang benar dan setidaknya satu kasus, yang berfungsi sebagai pernyataan kondisional, ada di setiap Switch. Anda dapat, misalnya, mendesain Sakelar Tipe yang menentukan apakah nilai antarmuka yang saya sertakan adalah tipe int atau string:
16. Jelaskan saluran Go.
Saluran go memungkinkan transmisi dan transfer data antar goroutine. Data dari jenis yang sama dapat dikirim melalui satu saluran.
Goroutine dapat mengirim dan menerima data melalui saluran yang sama karena aliran data dua arah saluran.
17. Jelaskan Metode Golang.
Golang tidak menyediakan kelas tetapi mendukung metode. Metode ini identik dengan fungsi, dengan pengecualian metode Go memiliki parameter penerima.
Metode Go memiliki akses ke atribut penerima melalui parameter penerima. Metode Go, juga dikenal sebagai fungsi penerima, membantu penyajian ide yang lebih akurat dan nyata.
18. Apa sebenarnya data race itu?
Debug yang paling umum dan sulit adalah data race. Akses yang tidak disinkronkan ke memori bersama atau eksekusi beberapa goroutine secara bersamaan tanpa penanganan terpisah menghasilkan kesalahan data race.
19. Apa sebenarnya pengumpulan sampah Go?
Pengumpulan sampah menggunakan kembali penyimpanan yang telah ditetapkan secara dinamis ke program untuk digunakan oleh objek lain. Kata tersebut sering mengacu pada regenerasi otomatis pengumpul sampah untuk penyimpanan rutin daripada kode eksplisit (disediakan oleh programmer) untuk melepaskan blok memori tertentu.
Pengumpulan sampah otomatis sering dimulai ketika jumlah RAM bebas turun di bawah ambang batas yang telah ditentukan atau setelah sejumlah alokasi tertentu.
Penghapusan item yang tidak lagi diperlukan perangkat lunak untuk membuat tempat di memori untuk objek yang lebih dinamis disebut sebagai "pengumpulan sampah."
20. Jelaskan tahapan pengujian menggunakan Golang.
Golang menyediakan pengujian paket otomatis menggunakan rangkaian pengujian khusus. Untuk membuat suite baru, buat file yang diakhiri dengan _test.go dan menyertakan fungsi TestXxx, di mana Xxx diganti dengan nama fitur yang Anda uji.
Fungsi yang menguji kemampuan login, misalnya, akan diberi nama TestLogin. File suite pengujian kemudian disertakan dalam paket yang sama dengan file yang sedang diuji.
File tes akan dilewati selama eksekusi biasa tetapi akan berjalan saat Anda memasukkan perintah go test.
21. Apa sebenarnya irisan di Go?
Slice adalah tipe data Go penting yang menyediakan antarmuka yang lebih kuat untuk urutan daripada array. Slice, tidak seperti array, hanya diketik tergantung pada elemen yang dikandungnya (bukan jumlah elemen).
Untuk membuat irisan kosong dengan panjang yang bukan nol, gunakan kata kunci “make” bawaan.
22. Apa sebenarnya memori tumpukan itu?
Kami menyimpan objek dan variabel yang terbentuk secara dinamis dalam memori heap. Ketika kita tidak lagi menggunakan suatu objek, kita biasanya menghapus memori heap yang ditempati.
23. Apa sebenarnya penutupan fungsi?
Penutupan fungsi adalah jenis nilai fungsi yang membuat variabel yang direferensikan secara eksternal. Fungsi memiliki akses dan kontrol atas nilai-nilai variabel yang direferensikan.
Sebagai ilustrasi, penutupan yang dikembalikan oleh adder() masing-masing diikat ke variabel jumlah referensi yang berbeda.
24. Apa yang dimaksud dengan pernyataan goto Golang?
Pernyataan goto berfungsi sebagai pernyataan lompatan di Golang. Goto digunakan untuk memberikan kontrol label tertentu atas program.
Ini dapat digunakan untuk melewati bagian kode dan langsung ke pernyataan yang diperlukan, atau dapat digunakan untuk mengulangi sebagian kode program dalam keadaan tertentu.
25. Di Golang, apa itu Lvalue dan Rvalue?
Nilai:
- Ini mengacu pada tempat memori.
- Itu bisa diubah.
- Ini menunjukkan pengidentifikasi variabel.
- Ini mungkin terjadi di sebelah kiri atau kanan operator =.
- Pada baris x =20, misalnya, x adalah nilai dan 20 adalah nilai.
Nilai:
- Ini menandakan nilai tetap.
- Ini mewakili nilai data yang disimpan dalam memori.
- Itu selalu terjadi di sisi kanan = operator.
- Ekspresi 10 = 20 salah, misalnya, karena ada nilai (10) di sebelah kiri operator =.
26. Dalam Go, apakah konstruksi perulangan itu?
Hanya ada satu komponen perulangan di Go: perulangan for. Perulangan for terdiri dari tiga bagian yang dipisahkan oleh titik koma:
- Pernyataan Init dijalankan sebelum loop dimulai. Ini sering merupakan deklarasi variabel yang hanya muncul dalam lingkup for loop.
- Sebelum setiap iterasi, pernyataan kondisi dievaluasi sebagai Boolean untuk memutuskan apakah loop harus dilanjutkan.
- Pernyataan posting dijalankan pada akhir setiap iterasi.
27. Apa sebenarnya pola desain itu?
Pola desain adalah potongan kode yang dapat digunakan kembali untuk mengatasi masalah perangkat lunak umum. Jika Anda menggunakan pola desain, proyek Anda akan menghasilkan perangkat lunak yang lebih modular, skalabel, dan efisien. Pola desain membantu Anda mengembangkan aplikasi dan bekerja dengan tim. Pola desain umum termasuk Metode Pabrik, Singleton, Fasad, dan Dekorator.
28. Apa paket Golang terbaik untuk operasi file sederhana? Paket Golang tambahan apa yang digunakan untuk manipulasi file?
Antarmuka platform-independen disediakan oleh paket perpustakaan standar os. Saat berinteraksi dengan file, kami menggunakannya untuk fungsi sistem. Antarmuka os dimaksudkan untuk konsisten di semua sistem operasi.
Hasilnya, aplikasi yang kami kembangkan berjalan sama di Windows, Linux, dan Mac. Paket perpustakaan standar Go lainnya termasuk io, ioutil, dan bufio. Mereka beroperasi dengan file dan menambahkan fungsionalitas. Namun, mereka tidak diperlukan untuk operasi file mendasar. Kami hanya membutuhkan paket os.
29. Memberikan penjelasan tentang Arsitektur Berorientasi Objek Golang.
Golang tidak menggunakan desain objek kelas seperti konvensional Pemrograman berorientasi objek melakukan. Struktur dan perilaku data yang kompleks malah disimpan dalam struct dan metode.
Sebuah struct hanyalah sebuah skema dengan cetak biru untuk data yang akan dibawa oleh sebuah struktur. Struktur dapat digunakan untuk melambangkan ide-ide dari dunia nyata, seperti buku, orang, atau mobil.
30. Jenis konversi apa yang didukung Golang?
Dalam hal pengetikan eksplisit, Go sangat pilih-pilih. Tidak ada konversi tipe yang dilakukan secara otomatis. Untuk menunjuk suatu variabel dari satu tipe ke tipe lainnya, konversi tipe harus dilakukan secara eksplisit.
31. Jelaskan tujuan dan operasi dari pernyataan Tipe.
Di GO, konversi tipe digunakan untuk mengubah tipe yang berbeda. Nilai eksplisit dari tipe yang ditentukan diekstraksi dari nilai antarmuka dengan pernyataan tipe.
32. Apa sebenarnya tipe struct itu?
Sebuah struct terdiri dari daftar komponen bernama yang disebut bidang. Ada jenis dan nama untuk setiap bidang. Cara lain untuk memahami struct adalah sebagai sekelompok properti yang terhubung. Mereka sangat membantu untuk menggabungkan data untuk membuat catatan.
33. Menjelaskan backing array dari nilai slice.
Saat kita membangun sebuah irisan, Go menghasilkan larik rahasia yang disebut larik pendukung atau larik yang mendasari di belakang layar, dan variabel tipe irisan baru merujuk padanya. Item, bukan irisan, disimpan dalam larik pendukung.
Irisan diimplementasikan di Go sebagai struktur data yang disebut header irisan, yang bertindak sebagai representasi runtime dari irisan.
34. Apakah perlu memiliki variabel GOPATH dan GOROOT, dan jika ya, mengapa?
Biasanya, keduanya tidak diperlukan. Satu-satunya variabel yang harus disetel untuk menunjuk ke pohon atau pohon paket Go adalah GOPATH.
GOROOT mengacu pada root direktori home untuk bahasa pemrograman Go, namun hampir pasti sudah diatur ke lokasi instalasi Go saat ini.
Jika ada banyak versi bahasa Go pada sistem yang sama, atau jika bahasa Go diunduh sebagai paket biner dari internet atau dipindahkan dari komputer lain, variabel GOROOT harus disetel.
35. Apakah Golang memungkinkan pewarisan?
Warisan adalah gagasan dasar dalam pemrograman berorientasi objek yang mengacu pada meneruskan properti superclass ke kelas dasar.
Karena Golang tidak memiliki kelas, pewarisan dilakukan menggunakan penyematan struct dan struct tidak dapat diperluas secara langsung, kita harus menggunakan ide komposisi untuk membuat objek baru dengan struct.
36. Di Golang, bagaimana CGo muncul?
Dari file sumber Go dengan fitur yang ditentukan, cGo membuat file Go dan C yang dapat digabungkan menjadi paket Go yang unik. C mengacu pada "paket semu", yang merupakan frasa berbeda yang dihasilkan oleh cGo untuk merujuk ke namespace C.
37. Apa jenis pointer di Golang?
Penunjukan alfanumerik atau label untuk wilayah memori tertentu dikenal sebagai variabel. Jenis variabel yang dikenal sebagai pointer menyimpan alamat memori dari variabel lain.
Alamat suatu variabel diwakili oleh nilai pointer, atau nihil jika variabel belum ditetapkan. Sama seperti variabel yang mewakili lokasi memori nilai, pointer menunjuk ke alamat itu.
Kesimpulan
Tujuan dari bahasa pemrograman Golang adalah untuk membuat program yang efektif lebih cepat. Perusahaan mulai memanfaatkan Golang saat mereka mulai menyadari kemungkinan menguntungkannya.
Golang sangat efektif dalam memicu minat pengembang, meningkatkan penggunaan basis mereka dan, akibatnya, peluang kerja. Jawaban atas pertanyaan-pertanyaan di atas, yang merupakan pertanyaan paling umum yang ditanyakan selama wawancara Golang, dapat membantu Anda mendapatkan pekerjaan Golang yang Anda cari.
Lihat Seri Wawancara Hashdork untuk membantu persiapan wawancara.
Tinggalkan Balasan