Bjarne Stroustrup memperkenalkan move semantik dalam C 11 untuk mengoptimumkan pemindahan data dengan menghapuskan penyalinan yang tidak perlu. Teknik ini amat berguna apabila berurusan dengan struktur data yang besar.
Tidak seperti C , Golang tidak menyokong semantik pergerakan secara eksplisit dengan cara yang sama. Walau bagaimanapun, Go menggunakan pendekatan unik yang mencapai hasil yang serupa melalui jenis rujukan terbina dalamnya.
Go mengekalkan prinsip meneruskan segala-galanya mengikut nilai, termasuk jenis rujukan. Jenis rujukan ialah jenis Go terbina dalam yang secara dalaman memegang rujukan kepada struktur data yang berasingan. Lima jenis rujukan terbina dalam ialah:
Apabila anda lulus atau menetapkan jenis rujukan, hanya rujukan (penunjuk) disalin, bukan data asas. Ini dikenali sebagai semantik rujukan.
Dalam Go, anda boleh mencipta jenis rujukan anda sendiri dengan membenamkan penuding kepada struktur data yang lebih kompleks dalam definisi jenis tersuai anda. Contohnya:
type MyMap struct { impl *map[int]string }
Sekarang, apabila anda mencipta tika MyMap dan menetapkannya kepada pembolehubah lain, hanya penuding kepada peta asas disalin.
Walaupun Go tidak secara langsung melaksanakan semantik pergerakan gaya C, jenis rujukannya memberikan faedah prestasi yang serupa dengan membenarkan anda mengelakkan penyalinan yang tidak perlu struktur data yang besar. Dengan memahami konsep semantik rujukan, anda boleh mengoptimumkan kod Go anda dan meningkatkan prestasinya.
Atas ialah kandungan terperinci Adakah Golang Menawarkan Menggerakkan Semantik, dan Bagaimana Ia Mencapai Pengoptimuman Serupa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!