Rumah >pembangunan bahagian belakang >Golang >Mengapakah saya Mendapat \'ralat sintaks: koma bertitik tidak dijangka atau baris baharu sebelum lain\' dalam Kod Pergi saya?

Mengapakah saya Mendapat \'ralat sintaks: koma bertitik tidak dijangka atau baris baharu sebelum lain\' dalam Kod Pergi saya?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 12:40:02269semak imbas

Why am I Getting

Ralat Sintaks Tidak Dijangka: Titik Bertitik Tidak Dijangka atau Baris Baharu Sebelum "Else" dalam Go

Pengkompil Go melaporkan mesej ralat misteri: "ralat sintaks : koma bernoktah atau baris baharu yang tidak dijangka sebelum yang lain." Walaupun pemeriksaan menyeluruh pada baris 21, kod tersebut nampaknya tidak mempunyai sebarang koma bertitik atau baris baharu yang menyinggung perasaan.

Menyelidiki lebih mendalam, kami menemui dua ralat membingungkan tambahan pada baris 28 dan 32: "pernyataan bukan pengisytiharan di luar badan fungsi." Pernyataan ini berada dalam fungsi main() dan seharusnya tidak terjejas oleh pendakap penutup yang menamatkan fungsi tersebut.

Bukti menunjukkan bahawa ralat yang disebutkan di atas berpunca daripada isu asas dalam baris 21. Bahasa Go memperkenalkan beberapa titik koma bertitik unik- tingkah laku pengendalian:

  • Koma bertitik disisipkan secara automatik pada penghujung baris yang mengandungi token tertentu, termasuk pendakap tutup }.
  • Akibatnya, koma bertitik ditambah selepas pendakap tutup sesuatu if block.
  • Untuk pernyataan if {...} else {...}, sisipan koma bertitik ini mencipta ralat sintaks, kerana koma bertitik tidak dibenarkan dalam klausa else.

Untuk menyelesaikan isu ini, klausa else mesti diletakkan pada baris yang sama dengan pendakap penutup blok if. Contohnya:

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

Ralat pengkompil berkenaan "pernyataan bukan pengisytiharan di luar badan fungsi" timbul daripada keperluan ketat Go bahawa pernyataan di luar badan fungsi adalah pengisytiharan. Dalam kes baris 28 dan 32, ungkapan bukanlah pengisytiharan mahupun sebahagian daripada badan fungsi, oleh itu mesej ralat.

Atas ialah kandungan terperinci Mengapakah saya Mendapat \'ralat sintaks: koma bertitik tidak dijangka atau baris baharu sebelum lain\' dalam Kod Pergi saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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