golang tidak boleh di sebelah kiri

WBOY
Lepaskan: 2023-05-13 12:30:37
asal
375 orang telah melayarinya

Berlepas

Golang ialah bahasa pengaturcaraan yang cekap, ringkas, mudah dipelajari dan digunakan. Ia berasal sebagai projek dalaman Google untuk meningkatkan produktiviti dan kelajuan penyusunan bahasa sedia ada. Sejak Golang pertama kali dikeluarkan pada tahun 2009, ia telah menjadi salah satu bahasa yang paling popular untuk pembangunan aplikasi web dan awan. Walau bagaimanapun, di antara semua kelebihan Golang, terdapat satu yang mungkin kelihatan kurang intuitif: kaedah tugasan ketinggalan berbanding bahasa pengaturcaraan lain.

Dalam kebanyakan bahasa pengaturcaraan, kita boleh meletakkan pembolehubah di sebelah kiri dan menetapkan nilai baharu kepadanya. Sebagai contoh, kita boleh menulis dalam bahasa C seperti ini: a = 1;. Begitu juga, dalam Python, kita boleh menulis: a=1. Ini dipanggil tugasan dengan nilai dan nilai. Amalan biasa ialah meletakkan lnilai (pembolehubah) di sebelah kiri tanda sama dan rnilai (hasil pengiraan atau data) di sebelah kanan tanda sama. Namun, Golang nampaknya tidak mampu melakukannya.

Di Golang, kita tidak boleh meletakkan pembolehubah di sebelah kiri. Untuk kod berikut:

a := 1
a = 2

Ini adalah contoh yang baik yang menunjukkan kekangan ini. Baris pertama memberikan nilai integer 1 kepada pembolehubah a, yang merupakan bentuk singkatan. Baris kedua cuba menimpa nilai a dengan nilai 2, tetapi tidak dibenarkan untuk menetapkan a di sebelah kiri tanda sama. Jika anda melakukan ini, anda akan menerima amaran daripada pengkompil atau ralat kompilasi langsung.

Jadi, kenapa Golang tidak boleh menggunakan bentuk tugasan ini? Adakah benar-benar perlu pembolehubah tidak boleh diletakkan di sebelah kiri? Ini adalah soalan yang patut diterokai.

Malah, kaedah tugasan ini memang menyebabkan beberapa masalah logik. Sebagai contoh, katakan kita mempunyai kod berikut:

a := 1
b := 2
a = b = 3

Dalam bahasa lain, kita boleh menggantikan a dan b Tetapkan kepada 3 masing-masing. Walau bagaimanapun, di Golang ini menghasilkan ralat penyusunan. Oleh kerana nilai pulangan operasi tugasan ialah jenis bool, bukan nilai l, tugasan bersarang ini tidak berfungsi. Dalam kes ini kita perlu menulis seperti ini:

a := 1
b := 2
b = 3
a = b

Ini juga boleh dikekalkan Logiknya jelas dan mudah dibaca.

Selain itu, dalam beberapa kes, tidak membenarkan penetapan nilai juga boleh meningkatkan keteguhan program. Pertimbangkan coretan kod berikut:

a, b := 1, 2
jika a = b; a == 2 {

// do something
Salin selepas log masuk

}

Maksudnya, jika a bersamaan dengan b dan nilai a ialah 2, kemudian lakukan beberapa operasi. Jika penetapan nilai dibenarkan di Golang, kod di atas akan ditafsirkan oleh pengkompil seolah-olah b == 2 { ... }, kerana dalam kes ini, a ditugaskan kepada b itu sendiri, bukan 2. Ini boleh menyebabkan ralat logik dan menjadikan program rapuh dan tidak stabil.

Akhir sekali, walaupun Golang tidak boleh menetapkan di sebelah kiri, terdapat banyak cara lain untuk mencapai operasi yang sama. Sebagai contoh, kita boleh mengisytiharkan pembolehubah baharu dan menetapkannya kepada pembolehubah asal. Sebagai alternatif, kita boleh menggunakan pengendali penugasan kompaun seperti penugasan kenaikan (+=) atau penugasan pengurangan (-=). Kaedah ini memastikan kebolehbacaan kod dan kemudahan penyelenggaraan.

Secara keseluruhan, walaupun Golang tidak boleh membuat tugasan di sebelah kiri, ia adalah keputusan yang munasabah. Kekangan ini memastikan kod itu lebih jelas, lebih mudah dibaca, lebih mudah diselenggara dan meningkatkan keteguhan program. Oleh itu, wajar bagi mana-mana pembangun Golang untuk memahami had ini dan tidak cuba memintasnya.

Atas ialah kandungan terperinci golang tidak boleh di sebelah kiri. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan