Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Melangkau Nilai Iota Apabila Menetapkan Integer Berjujukan kepada Pemalar dalam Go?

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

DDD
DDDasal
2024-11-22 05:54:14976semak imbas

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)

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)

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)

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!

Kenyataan:
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