Bagaimana untuk mengakses fail daripada direktori fail sumber dalam Go?

Barbara Streisand
Lepaskan: 2024-10-25 22:27:03
asal
1006 orang telah melayarinya

How to access files from the source file directory in Go?

Mengakses Fail daripada Direktori Fail Sumber dalam Go

Tidak seperti bahasa yang ditafsirkan, program Go disusun dan bukannya dilaksanakan secara langsung. Ini bermakna selepas penyusunan, fail sumber tidak lagi diperlukan untuk binari berjalan. Akibatnya, Go tidak menyediakan setara langsung dengan makro __FILE__ Ruby untuk menentukan lokasi fail sumber.

Fungsi utama yang digunakan untuk menjana kod binari dalam Go ialah fungsi os.Open. Secara lalai, fungsi ini mencari fail dalam direktori kerja semasa ($PWD). Untuk membuka fail yang terletak dalam direktori yang sama dengan fail sumber, laluan relatif boleh digunakan. Walau bagaimanapun, pendekatan ini tidak selalunya mudah, terutamanya jika fail sumber dialihkan atau disalin ke lokasi lain.

Untuk menangani isu ini, adalah disyorkan untuk menggunakan masa jalan pakej masa jalan. Fungsi pemanggil. Fungsi ini menerima beberapa hujah, salah satunya ialah kedalaman timbunan yang sedang diperiksa. Dengan memberikan nilai 0, runtime.Caller mengembalikan nama fail dan nombor talian pemanggil fungsi yang mengandungi panggilan kepada Pemanggil. Contohnya:

<code class="go">import "runtime"

func main() {
    _, file, _, _ := runtime.Caller(0)
    err := os.Open(file + "/myfile.txt")
    if err != nil {
        log.Fatal(err)
    }
}</code>
Salin selepas log masuk

Dalam kod ini, fungsi runtime.Caller digunakan untuk mendapatkan nama fail bagi fail sumber, yang kemudiannya digabungkan dengan laluan relatif kepada fail yang anda ingin buka. Ini memastikan bahawa fail sentiasa dibuka berbanding dengan fail sumber, tanpa mengira lokasinya.

Atas ialah kandungan terperinci Bagaimana untuk mengakses fail daripada direktori fail sumber dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
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!