Macros in Go: A Tale of Symbol Substitution
Macros, ruji dalam banyak bahasa pengaturcaraan, menawarkan cara yang mudah untuk menentukan nama simbolik yang berkembang semasa penyusunan. Walau bagaimanapun, Go mengambil pendekatan yang berbeza. Walaupun ia mengelakkan makro, ia merangkumi dua mekanisme alternatif:
1. Pengaturcaraan meta melalui Penjanaan Kod
Teknik ini melibatkan penjanaan kod pada masa jalan berdasarkan konfigurasi atau data yang ditentukan pengguna. Ia membolehkan program yang sangat dinamik dan fleksibel.
2. Penggantian Simbol pada Masa Pautan
Mekanisme ini membolehkan penggantian simbol tertentu dalam segmen data baca sahaja program. Ia menawarkan cara terkawal dan boleh diramal untuk melaraskan pemalar pada masa binaan.
Untuk masalah yang dihadapi, pendekatan yang terakhir lebih sejajar dengan penggunaan #define makro dalam C . Begini cara anda boleh melaksanakannya dalam Go:
Menggunakan Penggantian Simbol
Dalam mana-mana pakej yang mudah, tentukan pemalar rentetan yang anda ingin ubah suai semasa runtime, seperti Bar dalam pakej foo.
Kemudian, semasa penyusunan, berikan pilihan -ldflags kepada go build atau go install arahan:
$ go install -ldflags='-X foo.Bar="my super cool string"'
Ini akan menggantikan foo.Bar malar dalam binari yang terhasil dengan nilai "rentetan super cool saya" pada masa pautan. Nilai ini boleh diakses oleh kod program.
Atas ialah kandungan terperinci Bagaimana Go Mencapai Fungsi Makro C Tanpa Menggunakan Makro?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!