Bagaimanakah Saya Boleh Melangkau Nilai Iota Apabila Menetapkan Integer Berjujukan kepada Pemalar dalam Go?

DDD
Lepaskan: 2024-11-22 05:54:14
asal
861 orang telah melayarinya

How Can I Skip Iota Values When Assigning Sequential Integers to Constants in Go?

Melangkau Nilai Malar Menggunakan Iota dalam Go

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:

Kumpulan Tunggal, Offset Manual

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)
Salin selepas log masuk

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.

Memecahkan Kumpulan Malar

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)
Salin selepas log masuk

Ini juga akan menghasilkan output yang sama, dan memasukkan pemalar baharu sebelum BANANA tidak akan menjejaskan nilai BANANA dan pemalar seterusnya.

Kumpulan Tunggal, Automatik Offset

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)
Salin selepas log masuk

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
)
Salin selepas log masuk

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!

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