func setActionImage(action *walk.Action, image interface{}) (err error) { var img walk.Image switch image := image.(type) { case nil: return nil case *walk.Bitmap: img = image case string: if img, err = imageFromFile(image); err != nil { return } } if bmp, ok := img.(*walk.Bitmap); ok { return action.SetImage(bmp) } return errors.New("invalid type for Image") }