GO中的init函数与this的疑问

yz23je · · 457 次点击 · 开始浏览    置顶

**问题1**:其它语言都有class的概念,我知道go没有这个。 我想问一下,其它语言中可以在构造函数中使用this指针调用自己类中的函数 那么我在go的init中要调用结构中的函数怎么调用呢,定义一个结构体对象再调用吗? 如下: ``` // 定义结构体 type Class_Test struct{ ..... } // 初始化函数 func init(){ // 这里不能像其它语言那样this->add() // 那么在这个go的init函数中要怎么调用add这个函数呢?难道也在这里先new(Class_Test)再调用吗? } func (obj Class_test)add(){ ...... } ``` **问题2**:在go语言中,比如我现在创建了2个go文件,test1.go和test2.go 这两个文件中定义有结构体和属于结构体的方法。 在main函数调用的时候,肯定是很new一个结构体。再通过结构体来调用里面的方法。但是我觉得这样不方便。因为你要调用相应的方法的时候,你得先new一个结构体出来。 反而觉得把如果结构体中的方法改成函数,那么就可以不用new结构体而是直接使用就可以了。 所以想问问大家,把结构体中的方法改成函数以方便调用。这种试在以前的维护中会有坑吗

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

457 次点击  ∙  1 赞  
加入收藏 微博
4 回复  |  直到 2021-12-20 10:42:11
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传