Câu hỏi phỏng vấn Golang
Câu hỏi

What is an idiomatic way o...

Câu trả lời

In Go, an idiomatic way to represent enums, which are not natively supported as they are in some other programming languages like Java or C++, is primarily through the use of constants combined with a custom type, often utilizing the iota identifier for simplicity and clarity.

Using iota with Constants

The iota keyword in Go is a predeclared identifier that simplifies the definition of incrementing numbers, making it ideal for creating enums. When used in a constant declaration, iota starts at zero and increments by one for each item in the sequence. This feature is particularly useful because it automatically assigns increasing values to enum elements, which are often needed for comparison or iteration purposes.

Here’s a basic example of using iota to define an enum for days of the week:

go Copy
type Day int

const (
    Sunday Day = iota
    Monday
    Tuesday
    Wednesday
    Thursday
    Friday
    Saturday
)

In this example, Sunday will have a value of 0, Monday will be 1, and so forth. This pattern not only ensures that each constant has a unique value but also ties these values to a custom type (Day), which enhances type safety and clarity in the code[1][2][4].

Custom Types for Added Clarity

Using custom types with iota is recommended to ensure type safety. This means that you can't accidentally assign incompatible types to each other. For instance, if Day is a type, you cannot mistakenly assign a non-Day type integer to a Day variable without an explicit conversion, thus reducing bugs related to type errors[2][4].

Validation and String Representation

To further utilize enums effectively, you can add methods to your type to perform actions like validation or gettin...

senior

senior

Gợi ý câu hỏi phỏng vấn

junior

How to efficiently concatenate strings in Go?

middle

How to initialise a struct in Go?

senior

Briefly describe how GC works in GO

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào