在golang中显示一周的第二天

Wobelaar:

我刚刚开始研究IT,我认为编写一个小程序以向您显示明天的日子会很有趣。可悲的是我被困住了。当前,当您从数组中写入正确的数字时,它可以工作,但是我希望它可以与字符串一起工作。因此,当您编写“ Maandag”(荷兰语中的星期一)时,程序将回答Dinsdag(荷兰语中的星期二)

到目前为止,这是我的代码:

package main

import (
    "fmt"
)

func main() {

    var counter int

    var dag [7]string
    dag[0] = "Zondag"
    dag[1] = "Maandag"
    dag[2] = "Dinsdag"
    dag[3] = "Woensdag"
    dag[4] = "Donderdag"
    dag[5] = "Vrijdag"
    dag[6] = "Zaterdag"

    fmt.Println("Welke dag is het?")
    fmt.Scan(&counter)

    if counter == 6 {
        counter = 0
        fmt.Println(dag[counter])
    }

    if counter != 6 {
        counter++
        fmt.Println(dag[counter])
    }
}
克鲁兹斯托夫·斯科里莫夫斯基(Krzysztof Skolimowski):

您正在寻找的是枚举。在Go中,它们可以这样实现:

type Weekday int 

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

func (day Weekday) String() string {
    // declare an array of strings
    // ... operator counts how many
    // items in the array (7)
    names := [...]string{
        "Sunday", 
        "Monday", 
        "Tuesday", 
        "Wednesday",
        "Thursday", 
        "Friday", 
        "Saturday"}
    // → `day`: It's one of the
    // values of Weekday constants.    
    // If the constant is Sunday,
    // then day is 0.
    // prevent panicking in case of
    // `day` is out of range of Weekday
    if day < Sunday || day > Saturday {
      return "Unknown"
    }
    // return the name of a Weekday
    // constant from the names array 
    // above.
    return names[day]
}

// will display "Sunday"
fmt.Println(Sunday)

// will display "Monday"
fmt.Println(Sunday + 1)

如果不需要int底层类型,则可以这样创建它:

const (
    Sunday = "Sunday"
     //...
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章