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