使用一个简单的计数程序比较古老的 C 语言以及现代的 Go 语言。
Go 是一种现代编程语言,它很大程度上源自于 C 编程语言。因而,对于写 C 程序的程序员来讲,Go 应当会感觉很熟识。Go 让编写新程序变得容易,同时让 C 程序员感觉熟识,但防止了 C 编程语言的许多常见陷阱。文章源自微观生活(93wg.com)微观生活-https://93wg.com/8478.html
怎么在 C 中执行循环
C 语言中最基本的循环是
for
循环,它允许你对一组值进行迭代。for
循环的基本语法是:文章源自微观生活(93wg.com)微观生活-https://93wg.com/8478.html
for { 循环内要执行的内容 ; }
文章源自微观生活(93wg.com)微观生活-https://93wg.com/8478.html
你可以编写一个
for
循环,以打印从 1 到 10 的数字,将起始前提设置为count = 1
,将收场前提设置为count 。这样就以
文章源自微观生活(93wg.com)微观生活-https://93wg.com/8478.htmlcount
变量等于 1 时开始循环。收场前提象征着只要count
变量小于或等于 10 ,循环就会继续。每一次迭代以后,你使用
count = count + 1
将count
变量的值增添 1。在循环内部,你可使用printf
打印count
变量的值:文章源自微观生活(93wg.com)微观生活-https://93wg.com/8478.html
for 文章源自微观生活(93wg.com)微观生活-https://93wg.com/8478.html
文章源自微观生活(93wg.com)微观生活-https://93wg.com/8478.htmlfor count = 1; count
尽管上述方式在 Go 中是正确的,但它其实不是最经常使用的 Go 写法。采取惯例是“使用与本地语言为人所知的表达方式”。任何语言的目标都是高效的沟通,编程语言也不例外。在不同的编程语言之间进行转换时,重要的是意想到虽然物似而意不同,一种编程语言中的典型写法在另外一种编程语言中可能不完整相同。文章源自微观生活(93wg.com)微观生活-https://93wg.com/8478.html
为使用更相符惯例的 Go,你可以进行几个小修改:文章源自微观生活(93wg.com)微观生活-https://93wg.com/8478.html
- 通过使用
+=
操作符来将sum = sum + count
更简洁地表达为sum += count
。- 通过使用 分配并推断类型运算符来表达
count := 1
而不是var count int
随着count = 1
。:=
语法同时定义并初始化count
变量。- 将
count
的声明移到for
循环的头中。这减少了一些认知负担,也通过减少程序员在任什么时候候都必需心里记着的变量数目来提高可读性。这个更改还通过在最接近其使用之处以及最小的规模中声明变量来增添安全性,从而减少了在代码不断演进的进程中对变量进行意外操作的可能性。上述改动的组合将发生下列代码:文章源自微观生活(93wg.com)微观生活-https://93wg.com/8478.html
package main
import \"fmt\"func main {
fmt.Println
var sum int
for count := 1; count你可使用这个 Go.dev 的 链接在 Go 实验场中尝试这个示例程序。
C 以及 Go 类似但不同
通过在两种编程语言中编写相同的程序,你可以看到 C 以及 Go 这两种语言尽管类似但依然不同。将从 C 转换到 Go 时需要注意下列几点:
- 在 C 中,每一个程序指令都必需以分号结尾。这告知编译器一个语句在哪里收场,下一个在哪里开始。在 Go 中,分号是有效的,但几近老是可以推断出来。
- 尽管大多数现代 C 编译器会为你将变量初始化为零值,但 C 语言规范指出,变量得到的是内存中的任意值。Go 值老是初始化为其零值。这有助于使 Go 成为一种更具内存安全的语言。这类差异在使用指针时变得更为有趣。
- 注意 Go 程序包对导入标识符的使用方式。例如,
fmt
是一个实现格式化输入以及输出的函数,相似于 C 中的stdio.h
中的printf
以及scanf
。fmt
程序包在pkg.go.dev/fmt中有文档描写。- 在 Go 中,
main
函数老是以退出代码 0 返回。如果你但愿返回其他值,你必需调用os.Exit
,其中n
一般是 1 以表示过错。这可以从任何处所调用,不单单是main
函数,来终止程序。你可以在 C 中使用在stdlib.h
中定义的exit
函数来实现相同的效果。via: https://opensource.com/article/23/4/c-vs-go-progra妹妹ing-languages
以上就是微观生活(93wg.com)关于“软件开发 | 编程语言比较:C 以及 Go”的详细内容,希望对大家有所帮助!
软件开发 | 编程语言比较:C 以及 Go
继续阅读
评论