Menghadapi kaedah yang tidak dikenali seperti .(rentetan) boleh membingungkan. Berikut ialah penjelasan terperinci untuk menjelaskan konsep ini.
Dalam coretan kod yang anda berikan, .(rentetan) ialah contoh penegasan jenis dalam Go. Seperti yang dinyatakan dalam "Effective Go", penegasan jenis digunakan untuk mengekstrak nilai jenis yang ditentukan daripada nilai antara muka.
Dalam kod, b ialah pembolehubah{} antara muka yang ditetapkan dengan nilai rentetan. reflect.TypeOf(b.(string)) mengembalikan jenis nilai yang ditegaskan (string), manakala reflect.TypeOf(b) mengembalikan jenis nilai antara muka (antara muka{}).
Jenis penegasan membenarkan anda menganggap nilai antara muka sebagai jenis tertentu, membolehkan tindakan seperti menghiris atau mengakses medan tertentu. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa penegasan jenis tidak mengisytiharkan atau mengubah jenis pembolehubah secara eksplisit. Mereka hanya menghantar nilai antara muka kepada jenis yang diminta, membenarkan operasi khusus jenis.
Selain itu, penegasan jenis memperkenalkan semakan masa jalan. Jika jenis yang ditegaskan tidak sepadan dengan jenis sebenar nilai antara muka, panik masa jalan akan berlaku. Untuk mengendalikan perkara ini, anda boleh menggunakan nilai boolean pilihan ok, yang menunjukkan sama ada penegasan itu berjaya.
Ringkasnya, penegasan taip dalam Go ialah alat berkuasa yang membolehkan anda bekerja dengan nilai antara muka dengan menukarnya kepada jenis tertentu pada masa jalan, membuka operasi khusus jenis dan semakan masa jalan.
Atas ialah kandungan terperinci Go Type Assertions: Apakah Tujuan `.(data_type)`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!