Go 如何将magickWand引用传递给函数

Go 如何将magickWand引用传递给函数,go,imagemagick,magickwand,Go,Imagemagick,Magickwand,我可以知道如何将imagick.MagickWandstruct传递给函数并在其上应用it方法吗?似乎imagick.NewMagickWand返回了*imagick.MagickWand的类型,不是吗 我无法完成,请继续获取错误消息:error\u WAND:ContainsNoImages'MagickWand-0' 如何将适当的结构引用传递给函数,以便在这些函数中连续使用mw func generateImage() error { // skip error handling

我可以知道如何将
imagick.MagickWand
struct传递给函数并在其上应用it方法吗?似乎
imagick.NewMagickWand
返回了
*imagick.MagickWand
的类型,不是吗

我无法完成,请继续获取错误消息:error\u WAND:ContainsNoImages'MagickWand-0'

如何将适当的结构引用传递给函数,以便在这些函数中连续使用
mw

func generateImage() error {
    // skip error handling
    var err error 

    mw := imagick.NewMagickWand()
    defer mw.Destroy()

    err = createCanvas(mw, "red") // create canvas
    err = compositeIcon(mw, "c:/icon.png") // add icon
    err = addText(mw, "Hello world") // add text

    err = mw.WriteImage("c:/output") // get the output
}

func createCanvas(mw *imagick.MagickWand, color string) error {
    // skip error handling
    var err error
    pw := imagick.NewPixelWand()
    defer pw.Destroy()

    pw.SetColor("blue")
    err = mw.NewImage(200, 100, pw)
    return nil
}
能帮忙吗?这里是新手。:)


更新:

我给出的例子是正确的。在上面的示例中,通过引用传递是正确的,我收到了错误,因为我忽略了我的代码并调试了错误的行。抱歉搞混了


谢谢。

如果
mw
具有类型
*imagick.MagickWand
,则
*mw
具有类型
imagick.MagickWand

也就是说,
mw
是指向该类型的指针,
*
运算符取消对该类型本身指针的引用


因此,我将函数声明为
createCanvas(mw*imagick.MagickWand)
,在函数内部,我使用
mw
,就像
err=*mw.NewImage(200100,pw)
?正在尝试…:)接收错误消息:
createCanvas通过值传递锁:…/imagick.v3/imagick.MagickWand包含同步。一旦包含同步。互斥体
。。。我试图更改代码周围的
*
位置,但无法完成。谢谢您的帮助。你说的是对的。。。经过仔细检查,我发现我天真地调试了错误的行。谢谢
mw := imagick.NewMagickWand() // Now mw is a *imagick.MagickWand
*mw // Is a imagick.MagickWand