Golang函数声明代码审查请求
Golang函数声明代码审查请求 从Python转向Golang需要一些时间来适应,我正寻求帮助来审查我的Go代码。 我正在尝试将一个Python代码转换为Golang。我已经用Golang重写了代码。附上的是代码截图。请审查我的代码并告知其中的错误。谢谢。

Python代码结构
class CallmainFunc(obj):
def init(self, **kwargs):
self.variable = Nonedef funcT1(self, f1, f2):
return f2def funcT2(self, p1): return None
def funcT3(self, t1=None):
return Falsedef funcT4(self, z1, z2):
z1 - The z1 instance for a car brand z2 - list of available cars models ‘’’ passclass AA(obj): def …
等效的Go代码
//KWAG = simulation of python kwargs
type KWAG map[string]interface{}
type CallmainFunc struct {} //tryin to simulate Class as type
struct CallmainFunc(obj) {
func init(self, args KWAG) {
self.variable = nil
}
func funcT1(self, f1 string, f2 string) string {
return f2
}
func funcT2(self, p1 string) {
return nil
}
func funcT3(self, t1 string) bool {
return false
}
//dont know how to re-write funcT4
更多关于Golang函数声明代码审查请求的实战教程也可以访问 https://www.itying.com/category-94-b0.html
jennifer:
附上代码截图。
请以文本形式发布代码。不要以图片形式发布代码。
更多关于Golang函数声明代码审查请求的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
完全理解你在转向新语言时遇到的困难。有很多优秀的Go语言入门教程,强烈建议你理解基本概念并在 play.golang.org 上运行示例代码。这对我也有很大帮助。
从你的Go代码来看,有几个关键问题需要修正。Go语言没有类的概念,而是使用结构体和方法。以下是修正后的代码:
type CallmainFunc struct {
variable interface{}
}
// 构造函数模式
func NewCallmainFunc(kwargs map[string]interface{}) *CallmainFunc {
return &CallmainFunc{
variable: nil,
}
}
func (c *CallmainFunc) FuncT1(f1, f2 string) string {
return f2
}
func (c *CallmainFunc) FuncT2(p1 string) error {
return nil
}
func (c *CallmainFunc) FuncT3(t1 ...string) bool {
return false
}
func (c *CallmainFunc) FuncT4(z1 interface{}, z2 []string) {
// z1 - The z1 instance for a car brand
// z2 - list of available cars models
}
主要修正点:
- 结构体字段声明需要在结构体内部
- Go使用接收者方法而不是
self参数 funcT2返回error类型更符合Go惯例funcT3使用可变参数模拟Python的默认参数funcT4根据文档字符串实现参数类型
使用方法:
func main() {
kwargs := map[string]interface{}{"key": "value"}
obj := NewCallmainFunc(kwargs)
result := obj.FuncT1("input1", "input2")
fmt.Println(result)
}

