Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Saya Mendapat \"Ralat Sintaks: Titik Bertitik Tidak Dijangka Sebelum Lain\" dalam Go?

Mengapa Saya Mendapat \"Ralat Sintaks: Titik Bertitik Tidak Dijangka Sebelum Lain\" dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 01:04:29295semak imbas

Why Am I Getting

Koma Bertitik Tidak Dijangka Sebelum Lain dalam Go: Penjelasan Terperinci

Kod Go anda menghadapi ralat luar biasa pada baris 21: "ralat sintaks: tidak dijangka koma bertitik atau baris baharu sebelum yang lain." Di sebalik penegasan anda, pemeriksaan lebih dekat mendedahkan bahawa memang terdapat koma bertitik (;) sebelum pernyataan "lain" pada baris ini.

Masalah utama di sini berpunca daripada peraturan pemasukan koma bertitik automatik Go. Biasanya, koma bertitik adalah pilihan dalam Go; bagaimanapun, pengkompil akan memasukkannya secara automatik pada penghujung baris tertentu untuk mengekalkan integriti sintaksis. Satu kes sedemikian ialah apabila baris diakhiri dengan pendakap tutup '}', seperti yang menutup pernyataan "jika" pada baris 21.

Tingkah laku ini menimbulkan halangan untuk pernyataan "lain" berikutnya. Dalam Go, blok "lain" hendaklah ditulis pada baris yang sama dengan pendakap penutup pernyataan "jika". Oleh itu, pengkompil tidak boleh menambah koma bertitik pada penghujung baris 21 kerana ia akan mencipta dua pernyataan berasingan, yang merupakan sintaks yang salah.

Untuk menyelesaikan isu ini, letakkan kata kunci "lain" terus selepas pendakap penutup pada baris 21:

<code class="go">if subject == current_mid {
    current_topic[predicate] = append(current_topic[predicate], object)
} else {
    processTopic(current_mid, current_topic, xmlFile)
    current_topic = make(map[string][]string)
}</code>

Pengubahsuaian ini memastikan bahawa pernyataan "jika" dan "lain" membentuk satu pernyataan majmuk tunggal, seperti yang dikehendaki oleh sintaks Go.

Mengenai ralat pada baris 28 dan 32, ia berkaitan dengan kenyataan di luar skop fungsi "utama". Dalam Go, pernyataan mesti disertakan dalam badan fungsi yang dimilikinya. Untuk membetulkan ralat ini, sertakan pernyataan dalam kurung kurawal '}' dalam badan fungsi "utama".

Atas ialah kandungan terperinci Mengapa Saya Mendapat \"Ralat Sintaks: Titik Bertitik Tidak Dijangka Sebelum Lain\" dalam Go?. 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