如何写出高质量的Go代码

Python013

如何写出高质量的Go代码,第1张

请自行查看我前面写得GO语言开发环境和GO语言IDE编辑器的经验文章

我们先写一段GO代码

很简单就是打印输出一个hello world!

保存为print.go文件

然后再CMD下一路cd到print.go目录下来

在cmd下运行 go run print.go就可以运行go程序了

看看运行结果

GO程序的代码是可以直接编译成exe文件的

在print.go目录下运行 go build print.go即可把go程序编译成exe文件

完成之后看看exe文件是否存在

最好我们要看看运行exe的效果

/*Note:YourchoiceisCIDE*/#include"stdio.h"#include"stdlib.h"#include"ctype.h"intn=0charrecord[20]floatproduct()floatchange()floatmuli(){floatsummsumm=product()while(record[n]=='-'||record[n]=='+'){switch(record[n]){case'+':n++summ+=product()breakcase'-':n++summ-=product()break}}returnsumm}floatproduct(){floatsumpsump=change()while(record[n]=='*'||record[n]=='/'){switch(record[n]){case'*':n++sump*=change()breakcase'/':n++sump/=change()break}}returnsump}floatchange(){floatsumccharrec[20],i=0if(record[n]=='('){n++sumc=muli()}if(record[n]==')')n++while(isdigit(record[n])||record[n]=='.'){while(isdigit(record[n])||record[n]=='.')rec[i++]=record[n++]rec[i]='\0'sumc=atof(rec)}returnsumc}voidmain(){while(1){n=0scanf("%s",record)printf("%s=%g\n",record,muli())}}这个是比较简单的。。。但是有点难理解。。。不过运行绝对正确。。还支持括号。。。但是在这个程序里面我加没有出错处理。。。另一种方法是用栈写。。。这个好理解。。但是麻烦。。。

在本节中,您将添加通用函数调用的修改版本,进行小的更改以简化调用代码。您将删除在这种情况下不需要的类型参数。

当 Go 编译器可以推断您要使用的类型时,您可以在调用代码中省略类型参数。编译器从函数参数的类型推断类型参数。

请注意,这并不总是可能的。例如,如果您需要调用没有参数的泛型函数,则需要在函数调用中包含类型参数。

在 main.go 中,在您已有的代码下方,粘贴以下代码。

在此代码中:

(1)调用泛型函数,省略类型参数。

从包含 main.go 的目录中的命令行,运行代码。

接下来,您将通过将整数和浮点数的并集捕获到您可以重用的类型约束(例如从其他代码中)来进一步简化函数。

正如您将在本节中看到的,约束接口也可以引用特定类型。

1、编写代码

在此代码中:

b.在您已有的函数下方,粘贴以下通用 SumNumbers函数。

在此代码中:

c.在 main.go 中,在您已有的代码下方,粘贴以下代码。

在此代码中:

(1)调用SumNumbers打印每个map的总和。

与上一节一样,在调用泛型函数时省略了类型参数(方括号中的类型名称)。Go 编译器可以从其他参数推断类型参数。

从包含 main.go 的目录中的命令行,运行代码。

做得很好!您刚刚学习了 Go 中的泛型。