Dalam Go, iota ialah pemalar khas yang digunakan untuk menetapkan integer berjujukan kepada pemalar terbilang dalam kumpulan yang berterusan. Walau bagaimanapun, ada kalanya perlu untuk melangkau memberikan nilai iota kepada pemalar tertentu. Berikut ialah tiga pendekatan:
Jika pemalar berada dalam kumpulan yang sama, anda boleh mengalihkan iota secara manual dengan pemalar, meninggalkan ungkapan permulaan kosong untuk pemalar yang anda ingin langkau:
const ( APPLE = iota ORANGE PEAR BANANA = iota + 96 // 96 is added manually to get 99 GRAPE ) fmt.Println(APPLE, ORANGE, PEAR, BANANA, GRAPE)
Pendekatan ini akan menghasilkan yang diingini output: 0, 1, 2, 99, 100. Walau bagaimanapun, menukar susunan atau memasukkan pemalar baharu sebelum BANANA akan menjejaskan nilai BANANA dan pemalar seterusnya.
Untuk mengelakkan perubahan nilai yang tidak dijangka, pecahkan kumpulan tetap dan mulakan yang baharu satu:
const ( APPLE = iota ORANGE PEAR ) const ( BANANA = iota + 99 // Iota resets to 0 GRAPE ) fmt.Println(APPLE, ORANGE, PEAR, BANANA, GRAPE)
Ini juga akan menghasilkan output yang sama, dan memasukkan pemalar baharu sebelum BANANA tidak akan menjejaskan nilai BANANA dan pemalar seterusnya.
Untuk mengekalkan kumpulan pemalar tunggal sambil melangkau nilai, perkenalkan pemalar di mana pemecahan harus berlaku dan tolak nilainya daripada iota dalam baris seterusnya:
const ( APPLE = iota ORANGE PEAR _BREAK BANANA = iota - _BREAK + 98 // Continues from 98 + 1 = 99 GRAPE ) fmt.Println(APPLE, ORANGE, PEAR, BANANA, GRAPE)
Pendekatan ini memastikan bahawa menukar susunan atau memasukkan pemalar baharu sebelum BANANA tidak akan menjejaskan nilai BANANA dan pemalar seterusnya . Untuk memudahkan pengiraan offset, _BREAK boleh dimulakan dengan iota 1, jadi offset untuk digunakan pada pemalar seterusnya ialah nilai _BREAK itu sendiri:
const ( APPLE = iota ORANGE PEAR _BREAK = iota + 1 BANANA = iota - _BREAK + 99 // Continues from 99 GRAPE )
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melangkau Nilai Iota Apabila Menetapkan Integer Berjujukan kepada Pemalar dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!