gpt4 book ai didi

java - 如何从blow Java代码生成Go代码?

转载 作者:IT王子 更新时间:2023-10-29 01:40:09 25 4
gpt4 key购买 nike

我想写一个Java2Go的生成器,但是我觉得很难表达多态性(例如:formal arg是Base class,而real arg是Sub class),如何在Go中表达blow code?

class Base{
public int i;
}

class Sub extends Base{
}

class Test{
public static int test(Base base){
base.i = 99;
return base.i;
}
public static void main(String [] args){
Sub sub = new Sub();
System.out.println(test(sub));
}
}

最佳答案

您需要复制您的代码或制作调用通用实用函数的包装器,这基本上是疯狂的。

没有优雅的方法来进行“逐个函数的翻译”。优雅的方式是以不同的方式编写程序。

从根本上讲,Go 程序的结构必须有所不同。多年来编写面向对象的代码,这是一个很难改掉的习惯,但当我想出解决问题的“类似 Go”的方法时,随着时间的推移,它通常会变得更简单。

拥有适当的继承和所有看起来可以节省代码并保持整洁的东西,但是 - 至少根据我的经验 - 经过多年的开发,它很容易像一团乱麻一样结束,或者至少很难深入挖掘,如果你有一段时间没有使用代码了。

Go 的界面更加有限,但它会迫使您让事情变得更简单和更“明显”。不同类之间的分离是明确的。

也有一些优点;在您获得一些经验之后,“混合”类型比继承要容易得多。另一个“技巧”是一个类型可以满足多个接口(interface),例如。

如果您一直在编写面向对象的代码,那么需要一些练习才能习惯新工具。我建议与其编写翻译器,不如尝试编写一些基于 Go 的工具。那一定会很好玩。 :-)

关于java - 如何从blow Java代码生成Go代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20414375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com