Mengapa Titik Bertitik dan Pernyataan Di Luar Fungsi Menyebabkan Ralat dalam Kod My Go?

Susan Sarandon
Lepaskan: 2024-11-02 21:28:30
asal
602 orang telah melayarinya

Why Are Semicolons and Statements Outside Functions Causing Errors in My Go Code?

Ralat Sintaksis Tidak Selesai: Memeriksa Isu "Koma Bertitik Tidak Dijangka" dan "Pernyataan Bukan Pengisytiharan"

Dalam kod yang disediakan, anda menghadapi beberapa ralat, khususnya pada baris 21, 28 dan 32. Mari kita teliti setiap ralat dan penyelesaiannya:

Ralat pada Baris 21: Titik Bertitik Tidak Dijangka atau Baris Baharu Sebelum "lain"

Ralat ini berlaku kerana Go memerlukan kata kunci "else" untuk diletakkan pada baris yang sama dengan pendakap penutup bagi pernyataan "jika" atau "else if" yang sepadan. Dalam kod anda, blok "jika" berakhir pada baris 20 dengan koma bertitik, yang secara automatik memasukkan aksara baris baharu. Akibatnya, pernyataan "lain" pada baris 21 menjadi pernyataan yang berasingan, mengakibatkan ralat sintaks.

Penyelesaian:
Alihkan kata kunci "else" ke baris yang sama dengan pendakap penutup blok "jika", seperti yang ditunjukkan di bawah:

...
        } else if len(current_mid) > 0 {
            processTopic(current_mid, current_topic, xmlFile)
            current_topic = make(map[string][]string)
        }
...
Salin selepas log masuk

Ralat pada Baris 28 dan 32: Pernyataan Bukan Pengisytiharan Di Luar Badan Fungsi

Ralat ini menunjukkan bahawa anda mempunyai pernyataan (panggilan processTopic) yang diletakkan di luar badan fungsi main(). Dalam Go, pernyataan bukan pengisytiharan mesti muncul dalam badan fungsi.

Penyelesaian:
Alihkan panggilan processTopic kembali ke dalam badan fungsi utama(), seperti yang ditunjukkan di bawah:

...
} else if len(current_mid) > 0 {
            processTopic(current_mid, current_topic, xmlFile)
            current_topic = make(map[string][]string)
        }
processTopic(current_mid, current_topic, xmlFile)  // Moved inside function body
...
Salin selepas log masuk

Dengan menangani ralat ini, kod anda kini sepatutnya berjaya disusun. Ingat peraturan berikut untuk mengelakkan isu serupa pada masa hadapan:

  1. "else" dan "else if" mesti diisytiharkan pada baris yang sama dengan pendakap penutup blok if yang sepadan.
  2. Pernyataan bukan pengisytiharan mesti diletakkan dalam badan fungsi.

Atas ialah kandungan terperinci Mengapa Titik Bertitik dan Pernyataan Di Luar Fungsi Menyebabkan Ralat dalam Kod My 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!