自定义包内容如下:
package foo
import "fmt"
type Cat struct {
}
func (Cat) Cry() {
fmt.Println("汪汪汪")
}
func Excute(){
new(Cat).Cry();
}
主文件内容如下:
package main
import (
"bar"
"fmt"
)
func main(){
foo.Excute()
var dog foo.Dog = new(foo.Dog)
dog.Cry()
}
这样调用Excute()是可以的,但是调用新建对象的Cry()是不行的,这种操作应该怎么做?
有疑问加站长微信联系(非本文作者)

这foo.Dog是哪里来的?
手抖写错了,应该是foo.Cat
不行体现在哪?报空对喜?
Cannot use new(foo.Cat) (type *foo.Cat) as type foo.Cat in assignment less... (Ctrl+F1) Reports incompatible types in binary and unary expressions.
var cat * a.Cat = new(a.Cat) new需要使用指针
用go写程序还是换一下思路,个人go更偏向函数式编程
var cat foo.Cat 就行了。
@43guitui @jjmgx 明白了,谢谢 @victorl 好的,我学习一下。目前主要是没有接触一些工程化的go项目,而且刚接触,不太理解
+1, new 返回的是指针对象