0
私は特定の構造体をidで検索し、属性を変更するために、スライスを繰り返し処理しようとしています。インターフェイスのスライスを移動します
type A struct {
ID ID
Steps []Step
}
type Step interface{}
type B struct {
ID ID
}
type C struct {
ID ID
}
func (s *A) findStepByID(id ID) (Step, error) {
for index, step := range s.Steps {
switch stepType := step.(type) {
case A:
if stepType.ID == id {
return step, nil
}
case B:
if stepType.ID == id {
return step, nil
}
default:
return nil, errors.New("no step found")
}
}
return nil, errors.New("no step found")
}
私は例B
のための私の構造体を見つけたとき、私はあなたが明示的に型にキャストする必要が新しい値でIDを割り当てる.IF interface{}
を返しfindStepByID
B.ID = xy
ここには何が関係していますか? –
何が問題なのですか? – I159
それを行う方法私はステップがメソッドなしのインターフェイスであるというエラーを受け取ります – Fesco