在golang中定义类型作为参考

时间:2018-10-09 12:39:32

标签: oop go

令我惊讶的是这个街区

type Object *struct{
  X int
}

在golang中编译。但是,我不知道如何创建基础结构的实例。

从功能上讲,我想要实现的是从所有类型签名中删除所有星星,而不会被黑客入侵(重新定义类型和其他技巧)。这将使类型/结构非常类似于Java类。

问题是-golang支持此构造吗?还是我应该坚持到处都放星星?

1 个答案:

答案 0 :(得分:0)

如果您不想在各处传递指针,则不必这样做。您可以按值传递结构。

例如

将结构定义为:

type Object struct{
  X int
}

然后将您的函数定义为:

func DoStuffToObject(obj Object) {
    // Do things with obj here
}

如果您希望这样做,则按值传递对象没有任何问题。