Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menggunakan LDFLAGS untuk memulakan pembolehubah jenis bukan asas dalam GoLang

Menggunakan LDFLAGS untuk memulakan pembolehubah jenis bukan asas dalam GoLang

王林
王林ke hadapan
2024-02-11 20:36:08404semak imbas

在 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
}
<code>go build -ldflags="-X $(ROOT)/pkg/info.version=123"
</code>

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)
}
<code>go build -ldflags="-X $(ROOT)/pkg/info.versionInfo.version=123"
</code>

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam