
软件开发 | 编程语言比较:C 和 Go
使用一个简单的计数程序比较古老的 C 语言和现代的 Go 语言。
Go 是一种现代编程语言,它很大程度上源自于 C 编程语言。因此,对于写 C 程序的程序员来说,Go 应该会感觉很熟悉。Go 让编写新程序变得容易,同时让 C 程序员感觉熟悉,但避免了 C 编程语言的许多常见陷阱。
本文比较了一个简单的 C 和 Go 程序,该程序将数字从一相加到十。由于这个程序只使用了小的数值,所以结果不会变得太大,因此只使用了普通的整数变量。像这样的循环在编程中非常常见,所以这个简单的程序很容易比较 C 和 Go。
如何在 C 中执行循环
forforfor (起始条件 ; 结束条件 ; 每次迭代后执行的操作) { 循环内要执行的内容 ; }
forcount = 1count 。这样就以 count变量等于 1 时开始循环。结束条件意味着只要count变量小于或等于 10 ,循环就会继续。countcountcount = count + 1countprintfcountfor (count = 1; count ++count++count = count + 1count++forfor (count = 1; count forsum#include putsputsprintfprintf%d如果你编译并运行这个程序,你会看到这个输出:
adding 1 to 10 ..
The sum is 55
如何在 Go 中执行循环
forforforfor count = 1; count 使用这个循环,你可以直接转换为 Go 的示例程序:
package main
import "fmt"
func main {
var sum, count int
fmt.Println("adding 1 to 10 ..")
for count = 1; count 虽然上述方式在 Go 中是正确的,但它并不是最常用的 Go 写法。采用惯例是“使用与本地语言为人所知的表达方式”。任何语言的目标都是高效的沟通,编程语言也不例外。在不同的编程语言之间进行转换时,重要的是意识到尽管物似而意不同,一种编程语言中的典型写法在另一种编程语言中可能不完全相同。
为使用更符合惯例的 Go,你可以进行几个小修改:
+=sum = sum + countsum += countcount := 1var count intcount = 1:=countcountfor上述改动的组合将产生以下代码:
package main
import "fmt"
func main {
fmt.Println("adding 1 to 10 ..")
var sum int
for count := 1; count 你可以使用这个 Go.dev 的 链接在 Go 试验场中尝试这个示例程序。
C 和 Go 相似但不同
通过在两种编程语言中编写相同的程序,你可以看到 C 和 Go 这两种语言虽然相似但仍然不同。将从 C 转换到 Go 时需要注意以下几点:
fmtstdio.hprintfscanffmtmainos.Exit(n)nmainstdlib.hexit(n)(题图:MJ/8f731484-2dc3-4bac-b895-cbc92a63b48b)
via: https://opensource.com/article/23/4/c-vs-go-programming-languages
本文由 LCTT原创编译,Linux中国荣誉推出


