Rumah >pembangunan bahagian belakang >Golang >Mengapa Go Termasuk Penyata 'goto'?

Mengapa Go Termasuk Penyata 'goto'?

Patricia Arquette
Patricia Arquetteasal
2024-11-16 13:39:03779semak imbas

Why Does Go Include the

Pernyataan "goto" Go dan Tujuannya

Bertentangan dengan persepsi umum terhadap pernyataan "goto" sebagai amalan pengaturcaraan masa lalu, Pergi secara mengejutkan memasukkannya dalam sintaksnya. Persoalan telah timbul mengenai rasional di sebalik keputusan ini, walaupun terdapat kepercayaan meluas bahawa fungsi dan kaedah adalah lebih baik untuk kawalan aliran.

Motivasi Google untuk Memasukkan "goto"

Kehadiran pernyataan "goto" dalam pangkalan kod Go menunjukkan bahawa pernyataan tersebut berfungsi untuk tujuan tertentu. Meneliti kod sumber pustaka standard Go mendedahkan keadaan di mana "goto" digunakan dengan bijak.

Contoh daripada Perpustakaan Matematik

Dalam math/gamma.go fail, "goto" digunakan dengan cara berikut:

for x < 0 {
    if x > -1e-09 {
      goto small
    }
    z = z / x
    x = x + 1
}
for x < 2 {
    if x < 1e-09 {
      goto small
    }
    z = z / x
    x = x + 1
}

// (Rest of the code omitted)

small:
  if x == 0 {
    return Inf(1)
  }
  return z / ((1 + Euler*x) * x)
}

Dalam contoh ini, pernyataan "goto small" membenarkan untuk keluar yang ringkas dan mudah difahami daripada gelung bersarang, tanpa memerlukan pembolehubah tambahan untuk aliran kawalan. Ini memudahkan kebolehbacaan dan kebolehselenggaraan kod dengan menghapuskan kerumitan yang tidak perlu.

Sekatan ke atas "goto"

Adalah penting untuk ambil perhatian bahawa pernyataan "goto" Go tertakluk kepada batasan tertentu. Ia tidak boleh digunakan untuk melompat ke atas pembolehubah yang masuk ke dalam skop atau ke dalam blok kod yang berbeza. Sekatan ini memastikan bahawa "goto" digunakan secara bertanggungjawab dan tidak menjejaskan kejelasan kod atau kebolehramalan.

Atas ialah kandungan terperinci Mengapa Go Termasuk Penyata 'goto'?. 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