Menggunakan LDFLAGS untuk memulakan pembolehubah jenis bukan asas dalam GoLang

王林
Lepaskan: 2024-02-11 20:36:08
ke hadapan
373 orang telah melayarinya

在 GoLang 中使用 LDFLAGS 初始化非基本类型变量

GoLang ialah bahasa pengaturcaraan yang berkuasa dengan kaedah permulaan yang unik apabila berurusan dengan pembolehubah jenis bukan asas. Artikel ini akan memperkenalkan cara menggunakan LDFLAGS untuk memulakan pembolehubah jenis bukan asas dalam GoLang. LDFLAGS ialah parameter pengkompil Go dan boleh dihantar dengan menetapkan pembolehubah persekitaran. Dengan LDFLAGS, kami boleh menyediakan nilai lalai untuk pembolehubah jenis bukan asas pada masa penyusunan, dengan itu memudahkan logik kod dan meningkatkan kecekapan pembangunan. Seterusnya, mari kita lihat kaedah pelaksanaan khusus.

Kandungan soalan

Saya cuba memulakan pembolehubah pada masa binaan menggunakan pilihan ldflags dalam go build.

Kod ini berfungsi dengan baik:

var version

func printVersion() {
    fmt.Printf(version) // prints the corresponding value
}
Salin selepas log masuk
<code>go build -ldflags="-X $(ROOT)/pkg/info.version=123"
</code>
Salin selepas log masuk

Tetapi saya tidak dapat mencari cara untuk memulakan pembolehubah struktur saya sendiri yang ditakrifkan. Maksud saya, ini nampaknya tidak berkesan :

type VersionInfo struct {
    version string
}

var versionInfo VersionInfo

func printVersion() {
    fmt.Printf(versionInfo.version)
}
Salin selepas log masuk
<code>go build -ldflags="-X $(ROOT)/pkg/info.versionInfo.version=123"
</code>
Salin selepas log masuk

Saya tidak dapat mencari apa-apa yang meliputi isu ini dalam dokumentasi rasmi. Ada idea?

Penyelesaian

Menurut dokumentasi, nampaknya tidak mungkin untuk melakukan ini melalui bendera penghubung. Jenis pembolehubah mestilah string.

Sumber: https://www.php.cn/link/0a97e4f47718632c556e9ac591d5f3c2 p>

Atas ialah kandungan terperinci Menggunakan LDFLAGS untuk memulakan pembolehubah jenis bukan asas dalam GoLang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!