私はGolangを勉強していますが、にのチュートリアルを見つけたツアーを行っていました。周りを遊ぶために少し変更しました(土曜日から日曜日など)。それは遠く離れてを印刷しました。日曜日の場合でも今Golangツアースイッチの評価順:time.Now()。平日()+ 2ランタイムエラーが発生する:インデックスが範囲外です
package main
import (
"fmt"
"time"
)
func main() {
day := time.Monday
fmt.Printf("When's %v?\n", day)
today := time.Now().Weekday()
switch day {
case today + 0:
fmt.Println("Today.")
case today + 1:
fmt.Println("Tomorrow.", today + 1)
case today + 2:
fmt.Println("In two days.", today + 2)
default:
fmt.Println("Too far away.", today + 2)
}
}
を、それは私に出力を提供します::だから、私はこのように見えるようにコードを修正
When's Monday?
Too far away. %!v(PANIC=runtime error: index out of range)
私は、代わりに配列を超えて、それを追加のインデックスをMODために何ができますか?何らかの演算子のオーバーロードが好きなように思えます。追加操作でMODを行うべきではないでしょうか、少なくとも日数の場合はデフォルトで、少なくとも?
参考までに、これは[モジュロ](https://en.wikipedia.org/wiki/Modulo_operation)と呼ばれています。 – Adrian
そこのサンプルが私を守ってくれました。私は秒の間、 '(今日+ 1)%7 'が私に整数を与えるだろうと考えましたが、モジュラス演算子もオーバーロードされています...それは私の頭を回転させています。 * switch *に今集中しています。 –
@czaは 'func(d Weekday)String()string {return days [d]}'がint型です –