国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

編程語言比較:C 和 Go

開發(fā)
使用一個(gè)簡單的計(jì)數(shù)程序比較古老的 C 語言和現(xiàn)代的 Go 語言。

Go 是一種現(xiàn)代編程語言,它很大程度上源自于 C 編程語言。因此,對于寫 C 程序的程序員來說,Go 應(yīng)該會感覺很熟悉。Go 讓編寫新程序變得容易,同時(shí)讓 C 程序員感覺熟悉,但避免了 C 編程語言的許多常見陷阱。

本文比較了一個(gè)簡單的 C 和 Go 程序,該程序?qū)?shù)字從一相加到十。由于這個(gè)程序只使用了小的數(shù)值,所以結(jié)果不會變得太大,因此只使用了普通的整數(shù)變量。像這樣的循環(huán)在編程中非常常見,所以這個(gè)簡單的程序很容易比較 C 和 Go。

如何在 C 中執(zhí)行循環(huán)

C 語言中最基本的循環(huán)是 for 循環(huán),它允許你對一組值進(jìn)行迭代。for 循環(huán)的基本語法是:

for (起始條件 ; 結(jié)束條件 ; 每次迭代后執(zhí)行的操作) { 循環(huán)內(nèi)要執(zhí)行的內(nèi)容 ; }

你可以編寫一個(gè) for 循環(huán),以打印從 1 到 10 的數(shù)字,將起始條件設(shè)置為 count = 1,將結(jié)束條件設(shè)置為 count <= 10。這樣就以 count 變量等于 1 時(shí)開始循環(huán)。結(jié)束條件意味著只要 count 變量小于或等于 10 ,循環(huán)就會繼續(xù)。

每次迭代之后,你使用 count = count + 1 將 count 變量的值增加 1。在循環(huán)內(nèi)部,你可以使用 printf 打印 count 變量的值:

for (count = 1; count <= 10; count = count + 1) {
  printf("%d\n", count);
}

C 程序中常見的慣例是 ++,它表示 “將某個(gè)值加一”。如果你寫 count++,那就相當(dāng)于 count = count + 1。大多數(shù) C 程序員會使用 count++ 來編寫 for 循環(huán)中每次迭代后要執(zhí)行的操作,像這樣:

for (count = 1; count <= 10; count++) {
  printf("%d\n", count);
}

這是一個(gè)示例程序,將從 1 到 10 的數(shù)字相加,然后打印結(jié)果。使用 for 循環(huán)對數(shù)字進(jìn)行迭代,但不要打印數(shù)字,而是將數(shù)字添加到 sum 變量中:

#include <stdio.h>
int main() {
  int sum;
  int count;
  puts("adding 1 to 10 ..");
  sum = 0;
  for (count = 1; count <= 10; count++) {
    sum = sum + count;
  }

這個(gè)程序使用了兩個(gè)不同的 C 函數(shù)來向用戶打印結(jié)果。puts 函數(shù)打印引號中的字符串。如果你需要打印純文本,使用 puts 是個(gè)不錯(cuò)的選擇。

printf 函數(shù) 使用特殊字符在格式字符串中打印格式化的輸出。printf 函數(shù)可以打印許多不同種類的值。關(guān)鍵字 %d 打印十進(jìn)制(整數(shù))值。

如果你編譯并運(yùn)行這個(gè)程序,你會看到這個(gè)輸出:

adding 1 to 10 ..
The sum is 55

如何在 Go 中執(zhí)行循環(huán)

Go 提供了與 C 中非常相似的 for 循環(huán)。C 程序中的 for 循環(huán)可以直接轉(zhuǎn)換為 Go 的 for 循環(huán),并具有相似的表示形式:

for count = 1; count <= 10; count++ {
  fmt.Printf("%d\n", count)
}

使用這個(gè)循環(huán),你可以直接轉(zhuǎn)換為 Go 的示例程序:

package main
import "fmt"
func main() {
  var sum, count int
  fmt.Println("adding 1 to 10 ..")
  for count = 1; count <= 10; count++ {
    sum = sum + count
  }
  fmt.Printf("The sum is %d\n", sum)
}

雖然上述方式在 Go 中是正確的,但它并不是最常用的 Go 寫法。采用慣例是“使用與本地語言為人所知的表達(dá)方式”。任何語言的目標(biāo)都是高效的溝通,編程語言也不例外。在不同的編程語言之間進(jìn)行轉(zhuǎn)換時(shí),重要的是意識到盡管物似而意不同,一種編程語言中的典型寫法在另一種編程語言中可能不完全相同。

為使用更符合慣例的 Go,你可以進(jìn)行幾個(gè)小修改:

  • 通過使用 += 操作符來將 sum = sum + count 更簡潔地表達(dá)為 sum += count
  • 通過使用 分配并推斷類型運(yùn)算符 來表達(dá) count := 1 而不是 var count int 跟著 count = 1:= 語法同時(shí)定義并初始化 count 變量。
  • 將 count 的聲明移到 for 循環(huán)的頭中。這減少了一些認(rèn)知負(fù)擔(dān),也通過減少程序員在任何時(shí)候都必須心里記著的變量數(shù)目來提高可讀性。這個(gè)更改還通過在最接近其使用的地方和最小的范圍中聲明變量來增加安全性,從而減少了在代碼不斷演進(jìn)的過程中對變量進(jìn)行意外操作的可能性。

上述改動的組合將產(chǎn)生以下代碼:

package main
import "fmt"
func main() {
  fmt.Println("adding 1 to 10 ..")
  var sum int
  for count := 1; count <= 10; count++ {
    sum += count
  }
  fmt.Printf("The sum is %d\n", sum)
}

你可以使用這個(gè) Go.dev 的 鏈接 在 Go 試驗(yàn)場中嘗試這個(gè)示例程序。

C 和 Go 相似但不同

通過在兩種編程語言中編寫相同的程序,你可以看到 C 和 Go 這兩種語言雖然相似但仍然不同。將從 C 轉(zhuǎn)換到 Go 時(shí)需要注意以下幾點(diǎn):

  • 在 C 中,每個(gè)程序指令都必須以分號結(jié)尾。這告訴編譯器一個(gè)語句在哪里結(jié)束,下一個(gè)在哪里開始。在 Go 中,分號是有效的,但幾乎總是可以推斷出來。
  • 雖然大多數(shù)現(xiàn)代 C 編譯器會為你將變量初始化為零值,但 C 語言規(guī)范指出,變量得到的是內(nèi)存中的任意值。Go 值總是初始化為其零值。這有助于使 Go 成為一種更具內(nèi)存安全的語言。這種差異在使用指針時(shí)變得更加有趣。
  • 注意 Go 程序包對導(dǎo)入標(biāo)識符的使用方式。例如,fmt 是一個(gè)實(shí)現(xiàn)格式化輸入和輸出的函數(shù),類似于 C 中的 stdio.h 中的 printf 和 scanffmt 程序包在 pkg.go.dev/fmt 中有文檔描述。
  • 在 Go 中,main 函數(shù)總是以退出代碼 0 返回。如果你希望返回其他值,你必須調(diào)用 os.Exit(n),其中 n 通常為 1 以表示錯(cuò)誤。這可以從任何地方調(diào)用,不僅僅是 main 函數(shù),來終止程序。你可以在 C 中使用在 stdlib.h 中定義的 exit(n) 函數(shù)來實(shí)現(xiàn)相同的效果。
責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2020-12-29 06:44:18

GoScala編程語言

2025-09-25 17:17:06

GoC++指針

2015-08-21 10:38:16

編程語言GoC語言

2011-12-25 15:35:05

ibmdwJavaC++

2020-07-07 07:00:00

RustGo語言編程語言

2023-11-06 13:32:38

Go編程

2023-02-10 09:40:36

Go語言并發(fā)

2019-02-11 08:32:22

編程語言Go

2021-09-30 09:21:28

Go語言并發(fā)編程

2009-12-10 10:33:09

Go語言

2024-03-01 20:16:03

GoRust語言

2012-11-20 10:20:57

Go

2020-10-19 14:23:48

C語言編程語言

2010-03-19 09:39:17

Python編程語言

2009-06-15 11:03:10

Java語言C#語言

2017-12-09 22:09:05

編程KotlinC語言

2010-03-11 10:51:19

Python編程語言

2010-03-10 19:46:07

Python編程語言

2023-12-08 14:12:00

編程語言PythonJava

2020-12-08 15:54:15

編程語言Python
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

亚洲精品视频在线观看网站| 欧美一区亚洲二区| 亚洲美女少妇无套啪啪呻吟| 精品无码av无码免费专区| 天天色天天爱天天射综合| www欧美xxxx| 国产日韩欧美成人| 久久精品人人做| 黄色亚洲网站| 亚洲综合第一| 在线播放中文一区| 成人中文在线| 黄色高清在线观看| 7m第一福利500精品视频| 成人免费视频caoporn| 欧美极品少妇videossex| 免费精品视频一区二区三区| 欧美午夜精品久久久久久久| 中国av一区| v888av成人| 日本不卡免费高清视频| 亚洲天堂免费看| 欧美一二区在线观看| 四虎精品在线| 欧美中文字幕在线| 亚洲成人精品影院| 日韩电影免费在线观看| 一级一片免费视频| 国产精品美女久久久免费| 中文字幕在线一区免费| 亚洲精品aaaaa| 中文字幕在线视频不卡| 成人中文字幕+乱码+中文字幕| xnxx国产精品| 国产伦理久久久久久妇女| 欧美成人福利在线观看| 国产精品久久电影观看| 欧美在线看片a免费观看| 久久亚洲欧洲| 国产美女高潮在线观看| 青草网在线观看| 欧美激情第一页xxx| 亚洲免费av高清| 岳的好大精品一区二区三区| 两个人hd高清在线观看| 国产精品毛片va一区二区三区| 欧美日韩色一区| 丰满亚洲少妇av| 欧美日韩精品在线一区| 福利片在线观看| 午夜啪啪免费视频| 午夜欧洲一区| 美日韩精品免费| 亚洲精品一区二区三区婷婷月| 91在线观看污| 国产探花一区二区| lutube成人福利在线观看| 激情图片qvod| 国产成人+综合亚洲+天堂| 欧美电影免费观看完整版| 26uuu国产在线精品一区二区| 久久亚洲精品中文字幕蜜潮电影| bt在线麻豆视频| 毛片手机在线观看| 亚洲精品国产精品久久| 国产成人亚洲综合青青| 亚洲精品成人网| 欧美三级欧美成人高清www| 国产suv精品一区二区6| 欧美日本亚洲韩国国产| 99久久免费精品国产72精品九九| 国产香蕉视频在线看| 人妻久久久一区二区三区| 国产精品区一区二区三含羞草| 美女啪啪无遮挡免费久久网站| 欧美亚洲动漫精品| 中文字幕中文字幕中文字幕亚洲无线 | 国产午夜精品在线观看| 日韩精品五月天| 天天色综合色| 成人在线视频中文字幕| 蜜桃视频在线网站| 亚洲成人套图| 日本视频一二区| 羞羞在线观看网站| 天天爱天天操天天干| 日韩在线中文字幕| 国产丝袜一区二区| 精品国产一区二区精华| 欧美理论片在线| 亚洲午夜精品在线| 一区二区三区欧美在线观看| 国产亚洲婷婷免费| 久久久影视传媒| 91在线国产观看| 日本一区二区三区免费乱视频| 99久久免费精品高清特色大片| 国产高清在线观看免费不卡| 狠狠色综合播放一区二区| 亚洲综合国产激情另类一区| 亚洲裸体俱乐部裸体舞表演av| 日韩一区电影| 欧美亚洲一区| 国产一区二区三区久久久| 视频一区在线视频| 国产一区福利在线| 国产精品白丝jk白祙喷水网站| 北条麻妃一区二区三区| 亚洲欧洲精品一区二区精品久久久| 欧美激情一二三区| 夜夜亚洲天天久久| 色狠狠一区二区| 欧美日韩美女在线| 欧美va在线播放| 久久久在线观看| 成人亚洲激情网| 欧美日韩电影一区二区| 国产真人做爰毛片视频直播| 激情综合在线观看| 在线观看视频网站你懂得| 高清免费电影在线观看| 国产中文在线播放| 国产调教精品| 亚洲一区二区三区高清| 国产成人综合亚洲网站| 国产精品久久久久久久蜜臀| 欧美日韩亚洲不卡| 欧美成人免费va影院高清| 99高清视频有精品视频| 一区二区三区视频在线播放| 欧美18—20岁hd第一次| 五月天婷婷在线视频| 精品三级在线观看视频| 日本亚洲免费观看| 中文字幕av资源一区| 欧美一区二区三区视频免费播放 | 精品国产免费久久久久久尖叫| 先锋成人影院| 日本一区影院| 一区二区三区欧美| 超碰97人人人人人蜜桃| 在线视频三区| 国产一区日韩二区欧美三区| 久久久国产精品亚洲一区| 99热播在线观看| 伊人久久大香线蕉综合四虎小说 | 91精品久久久久久久久青青| 男人的天堂avav| 精品精品导航| 久久99精品国产91久久来源| 亚洲国产精品久久久久| 老汉色影院首页| 日韩在线观看中文字幕| 国产欧美日韩视频一区二区 | 91在线码无精品| 欧美激情18p| 国产成人精品无码播放| 九九九九九九精品任你躁| 国产精品欧美一级免费| 成人午夜一级二级三级| caopo在线| 中文字幕成人av| 成人欧美一区二区三区在线湿哒哒| av在线电影网| 日本一区二区成人在线| 欧美激情一区二区三区在线视频 | 国产精品嫩草影院久久久| 91福利在线视频| 91网址在线看| 国产一区国产精品| 欧美二区观看| 欧美日韩精品三区| 欧美在线观看视频网站| 卡通动漫国产精品| 精品久久中文字幕| 亚洲人成网站在线观看播放 | 国产ktv在线视频| 国产无人区一区二区三区| 高清国语自产拍免费一区二区三区| av综合电影网站| 亚洲午夜激情网页| 国产尤物av一区二区三区| 天天av综合| 日韩在线观看免费网站| 99riav在线| 一级精品视频在线观看宜春院| 亚洲一区高清| 国产精品mv在线观看| 欧美激情xxxx性bbbb| 99在线播放| 亚洲成人tv网| 日韩大片一区二区| 国产精品一卡二| 精品国产乱码久久久久久108| 18国产精品| 国产亚洲精品成人av久久ww| 色大18成网站www在线观看| 亚洲综合久久av| av二区三区| 欧美国产综合一区二区|