婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Go語(yǔ)言學(xué)習(xí)教程之聲明語(yǔ)法(譯)

Go語(yǔ)言學(xué)習(xí)教程之聲明語(yǔ)法(譯)

熱門(mén)標(biāo)簽:黃岡人工智能電銷(xiāo)機(jī)器人哪個(gè)好 濱州自動(dòng)電銷(xiāo)機(jī)器人排名 釘釘有地圖標(biāo)注功能嗎 鄭州亮點(diǎn)科技用的什么外呼系統(tǒng) 阿里云ai電話機(jī)器人 惠州電銷(xiāo)防封電話卡 汕頭小型外呼系統(tǒng) 浙江高頻外呼系統(tǒng)多少錢(qián)一個(gè)月 建造者2地圖標(biāo)注

前言

學(xué)習(xí)一門(mén)新的語(yǔ)言肯定是要從他的基本語(yǔ)法開(kāi)始,語(yǔ)法構(gòu)成了整個(gè)程序設(shè)計(jì)的基礎(chǔ),從語(yǔ)法中我們也可以看到這門(mén)語(yǔ)言的一些特性,但是話說(shuō)回來(lái),語(yǔ)法這東西,不同的語(yǔ)言大同小異,所以這也對(duì)語(yǔ)法的記憶造成了一定的難度,其實(shí)最好的方法應(yīng)該是旁邊有本書(shū),隨時(shí)可以拿過(guò)來(lái)查閱或者糾正。

Go 的初學(xué)者可能會(huì)有這樣的疑問(wèn):為什么 Go 的聲明語(yǔ)法與傳統(tǒng)的其他 C 家族編程語(yǔ)言不太一樣?在這篇文章中我們會(huì)比較這兩種不同的方式,并且也會(huì)解釋為什么。下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。

C 變量

首先,讓我們說(shuō)說(shuō) C 中的語(yǔ)法。C 使用了一種不尋常的巧妙的方法來(lái)實(shí)現(xiàn)聲明語(yǔ)法。我們不是用什么特殊的語(yǔ)法來(lái)描述類(lèi)型,而是寫(xiě)一個(gè)表達(dá)式,這個(gè)表達(dá)式包含兩個(gè)部分:被聲明的變量和變量的類(lèi)型。

int x;

上面這行代碼聲明了一個(gè)類(lèi)型為 int 的變量 x。一般來(lái)說(shuō),為了弄清楚如何編寫(xiě)新變量的類(lèi)型,可以先寫(xiě)一個(gè)含基本類(lèi)型變量的表達(dá)式,然后將基本類(lèi)型放在左邊,將表達(dá)式放在右邊。

因此,下面的聲明:

int *p;
int a[3];

描述的是 p 是一個(gè)指向 int 類(lèi)型的指針,因?yàn)?‘*p' 的類(lèi)型為 int。而 a 是一個(gè) int 類(lèi)型的數(shù)組,因?yàn)?‘a(chǎn)[3]' (這里請(qǐng)忽略下標(biāo)的值 3,它只是說(shuō)明數(shù)組的大小)的類(lèi)型是 int。

那函數(shù)呢?在最開(kāi)始的時(shí)候,C 的函數(shù)聲明是將 參數(shù)的類(lèi)型寫(xiě)在括號(hào)外面的,像這樣:

int main(argc, argv)
 int argc;
 char *argv[];
{ /* ... */ }

再一次,我們可以看到 main 是一個(gè)函數(shù),因?yàn)楸磉_(dá)式 main(argc, argv) 返回了一個(gè) int 類(lèi)型的值。現(xiàn)在大家比較習(xí)慣寫(xiě)成這樣:

int main(int argc, char *argv[]) { /* ... */ }

但是基本的結(jié)構(gòu)還是一樣的。

對(duì)于簡(jiǎn)單的類(lèi)型來(lái)說(shuō)這種巧妙的語(yǔ)法思想是能很好工作的,但是一旦類(lèi)型變得復(fù)雜就會(huì)令人感到困惑了。非常經(jīng)典的一個(gè)例子就是聲明一個(gè)函數(shù)指針。遵循著規(guī)則,你得到了下面的這種寫(xiě)法:

int (*fp)(int a, int b);

fp 是一個(gè)指向函數(shù)的指針,因?yàn)槿绻銓?xiě)一個(gè)表達(dá)式 (*fp)(a, b) 你會(huì)調(diào)用函數(shù)并得到一個(gè) int 類(lèi)型的值。那如果 fp 的其中一個(gè)入?yún)⑺旧硪彩且粋€(gè)函數(shù)呢?

int (*fp)(int (*ff)(int x, int y), int b)

這就變得開(kāi)始難以閱讀了。

當(dāng)然,我們可以在聲明一個(gè)函數(shù)的時(shí)候去掉參數(shù)名,那么 main 函數(shù)可以聲明成:

int main(int, char *[])

讓我們回想一下,argv 是這樣聲明的,

char *agrv[]

通過(guò)把變量名放在中間來(lái)聲明類(lèi)似 char *[] 這樣類(lèi)型的時(shí)候其實(shí)是令人困惑的。

然后我們?cè)賮?lái)看看如果我們將入?yún)⒆兞棵サ舻那闆r下 fp 函數(shù)的聲明是怎么樣的:

int (*fp)(int (*)(int, int), int)

無(wú)論將變量名放在內(nèi)部的哪里都不那么清晰明了。對(duì)于第一個(gè)入?yún)ⅲ?/p>

int (*)(int, int)

我想這不太容易能一眼看出是在聲明一個(gè)指向函數(shù)的指針。再進(jìn)一步,如果我們的返回值也是一個(gè)函數(shù)指針呢?

int (*(*fp)(int (*)(int, int), int))(int, int)

這根本就看不清聲明出來(lái)的 fp 到底是個(gè)啥玩意。。。

你自己也可以構(gòu)造出更多這類(lèi)詳細(xì)的例子,但是這些都說(shuō)明了 C 的聲明語(yǔ)法可能引入的一些困難。

不過(guò)還有一點(diǎn)需要提出。因?yàn)轭?lèi)型和聲明的語(yǔ)法是相同的,所以解析中間類(lèi)型的表達(dá)式是很困難的。這就是為什么 C 的類(lèi)型轉(zhuǎn)換總是用括號(hào)括起來(lái):

(int)M_PI

Go 語(yǔ)法

非 C 家族的編程語(yǔ)言通常使用不同的聲明類(lèi)型的語(yǔ)法:變量名通常放在前面,然后緊跟著一個(gè)冒號(hào)。因此我們上面的例子就變成了這樣:

x: int
p: pointer to int
a: array[3] of int

這些聲明是明確的,如果從左往右讀你會(huì)發(fā)現(xiàn)也是詳細(xì)的。Go 語(yǔ)言從中得到了啟發(fā),但為了簡(jiǎn)潔起見(jiàn),刪除了冒號(hào)和一些關(guān)鍵字:

x int
p *int
a [3]int

這個(gè)例子中 [3]int 與如何在表達(dá)式中使用 a 這兩者似乎沒(méi)有直接的對(duì)應(yīng)。(后面一小節(jié)中我們會(huì)講到指針的。)你可以通過(guò)單獨(dú)的語(yǔ)法來(lái)獲得清晰的結(jié)果。

現(xiàn)在讓我們考慮下函數(shù)。讓我們把這個(gè)聲明寫(xiě)成 Go 的形式,盡管在 Go 中真正的 main 函數(shù)是沒(méi)有入?yún)⒌模?/p>

func main(argc int, argv []string) int

表面上這和 C 語(yǔ)言并沒(méi)什么不同,除了將字符數(shù)組改成了字符串形式。但是從左往右讀起來(lái)卻很順暢:

函數(shù) main 需要傳入一個(gè)整型和字符串切片并且返回一個(gè)整型。(譯者注:直到譯者看到這篇文章,譯者才發(fā)現(xiàn)原來(lái)這么寫(xiě)讀起來(lái)竟這么順暢。。。)

即便舍去變量名還是很明確——因?yàn)閷?duì)于類(lèi)型聲明上沒(méi)有位置的變化,所以也沒(méi)有什么困惑。

func main(int, []string) int

這種從左到右的風(fēng)格有一個(gè)優(yōu)點(diǎn):就算類(lèi)型變得越來(lái)越復(fù)雜,這種方式還是表現(xiàn)得很得當(dāng)。

舉個(gè)聲明函數(shù)變量的例子(類(lèi)似在 C 語(yǔ)言中的函數(shù)指針):

f func(func(int, int) int, int) int

或者如果 f 返回的也是一個(gè)函數(shù)(譯者注:邊寫(xiě)邊讀你會(huì)再次驚訝于這絲滑般的順暢感。。。):

f func(func(int, int) int, int) func(int, int) int

從左到右依然讀起來(lái)很順暢,并且當(dāng)變量名被聲明的時(shí)候也很明顯。

類(lèi)型和表達(dá)式的語(yǔ)法的不同點(diǎn)使得在 Go 中編寫(xiě)和調(diào)用閉包是那么的簡(jiǎn)單:

sum := func(a, b int) int { return a + b } (3, 4)

指針

指針這家伙總是表現(xiàn)得“與眾不同”一點(diǎn)。觀察下數(shù)組和切片,舉個(gè)例子,Go 的類(lèi)型語(yǔ)法將方括號(hào)放在類(lèi)型的左邊,但是賦值表達(dá)式語(yǔ)法卻是將其放在表達(dá)式的右邊:

var a []int
x = a[1]

為了讓大家有一種熟悉的感覺(jué),Go 的指針同樣延續(xù) C 語(yǔ)言中的 * 符號(hào),但是我們不能簡(jiǎn)單的將指針類(lèi)型也反轉(zhuǎn)一下。所以指針使用方式如下:

var p *int
x = *p

我們不能簡(jiǎn)單粗暴地改成這樣:

var p *int
x = p*

因?yàn)楹缶Y 會(huì)與乘法的 相混淆。那或許我們可以使用 ^,舉個(gè)例子:

var p ^int
x = p^

但同樣的這個(gè)符號(hào)也已經(jīng)有其他含義了,類(lèi)型和表達(dá)式在前綴后綴的問(wèn)題上總是在許多方面使事情復(fù)雜化。舉個(gè)例子,

[]int("hi")

這是一種寫(xiě)法,但一旦以 * 打頭就必須用括號(hào)將其包住:

(*int)(nil)

如果我們?cè)敢夥艞?* 作為指針語(yǔ)法,那么這些括號(hào)就不是必要的了。(譯者注:但還能有更好的指針語(yǔ)法嗎。。。)

所以 Go 的指針語(yǔ)法與熟悉的 C 語(yǔ)言是類(lèi)似的,但這個(gè)關(guān)聯(lián)也意味著我們不得不使用括號(hào)來(lái)消除語(yǔ)法中的類(lèi)型和表達(dá)式之間的差異。

總體而言,我們相信 Go 的類(lèi)型語(yǔ)法比 C 的要更容易理解,尤其是當(dāng)事情變得復(fù)雜的時(shí)候。

關(guān)于Go語(yǔ)言為何要采用這種倒序語(yǔ)法呢?

Go的設(shè)計(jì)者Rob Pike的一篇介紹Go聲明語(yǔ)法的文章給出了答案,其中談到了Go聲明語(yǔ)法的設(shè)計(jì)考量。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • Go語(yǔ)言中的Slice學(xué)習(xí)總結(jié)
  • GO 語(yǔ)言學(xué)習(xí)指南
  • Go語(yǔ)言學(xué)習(xí)筆記之反射用法詳解
  • Go語(yǔ)言基礎(chǔ)學(xué)習(xí)教程
  • Go語(yǔ)言函數(shù)學(xué)習(xí)教程
  • golang新手不注意可能會(huì)出現(xiàn)的一些小問(wèn)題

標(biāo)簽:昭通 瀘州 泰安 晉中 駐馬店 阿壩 東營(yíng) 滄州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Go語(yǔ)言學(xué)習(xí)教程之聲明語(yǔ)法(譯)》,本文關(guān)鍵詞  語(yǔ)言,學(xué)習(xí)教程,之,聲明,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Go語(yǔ)言學(xué)習(xí)教程之聲明語(yǔ)法(譯)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Go語(yǔ)言學(xué)習(xí)教程之聲明語(yǔ)法(譯)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲欧洲精品天堂一级| 亚洲一区二区美女| 蜜臀av一级做a爰片久久| 国产精品理论片在线观看| 国产精品66部| 国模少妇一区二区三区| 97久久超碰国产精品| 99精品视频一区二区| 九一久久久久久| 国产麻豆视频精品| 97久久超碰国产精品| 亚洲国产精品国自产拍av| 亚洲天堂成人在线观看| 美女免费视频一区| 欧美久久久久久久久中文字幕| 91精品国产色综合久久久蜜香臀| 精品影院一区二区久久久| 精品入口麻豆88视频| 国产欧美一区二区精品性| 久久精品一区二区| 亚洲国产高清不卡| 日韩欧美成人激情| 99精品国产热久久91蜜凸| 日本一区二区三区视频视频| 欧美不卡一二三| 色先锋资源久久综合| 99精品久久久久久| 欧美日韩视频一区二区| 亚洲高清视频在线| 日韩欧美在线不卡| 91麻豆福利精品推荐| 国产美女精品在线| 久久久精品黄色| 69堂精品视频| 中文乱码免费一区二区| 欧美韩国日本不卡| 欧美性色黄大片| 国产另类ts人妖一区二区| 亚洲v精品v日韩v欧美v专区| 国产目拍亚洲精品99久久精品| 色婷婷av一区二区三区软件| 久久久久久免费毛片精品| 综合自拍亚洲综合图不卡区| 亚洲欧美另类久久久精品2019 | 欧美在线观看一二区| 中文字幕亚洲在| 亚洲免费av在线| 日韩av电影免费观看高清完整版 | 日本亚洲欧美天堂免费| 卡一卡二国产精品| 蜜桃精品视频在线| 成人福利在线看| 色综合av在线| 欧美日高清视频| 色琪琪一区二区三区亚洲区| 一区二区三区欧美激情| 裸体在线国模精品偷拍| 精品无人码麻豆乱码1区2区| 中文字幕不卡三区| 久久综合久色欧美综合狠狠| 精品国产自在久精品国产| 成人深夜福利app| 亚洲高清免费视频| 国产精品一二三| 99精品热视频| 欧美狂野另类xxxxoooo| av资源站一区| 久久久噜噜噜久久中文字幕色伊伊| eeuss鲁片一区二区三区在线观看| 国产精品影视在线| 国产精品视频在线看| 久久久久久99久久久精品网站| 国产精品国产自产拍在线| 久久99精品久久只有精品| 亚洲精品欧美激情| 欧美经典三级视频一区二区三区| 免费看日韩a级影片| 自拍偷拍国产精品| 久久久五月婷婷| 中文字幕一区二区三区色视频| 午夜久久久久久久久久一区二区| 国产成人午夜片在线观看高清观看| 亚洲女同一区二区| 日韩欧美高清在线| 日本韩国欧美三级| 欧美xxxxxxxxx| 成人性生交大片免费看在线播放| 国产精品一卡二| 综合久久久久久久| 日韩三级电影网址| 免费在线观看一区| 欧美精品久久天天躁| 高清不卡一区二区| 国产亚洲美州欧州综合国| 亚洲午夜激情网站| 91精品蜜臀在线一区尤物| 欧美一三区三区四区免费在线看| 国产在线一区二区综合免费视频| 麻豆视频一区二区| 欧美日韩高清不卡| 中文字幕一区不卡| 日韩综合在线视频| 亚洲精品自拍动漫在线| 伊人性伊人情综合网| 久久久不卡网国产精品二区| 六月丁香综合在线视频| 欧美日韩美女一区二区| 国产精品网站在线观看| 亚洲欧美aⅴ...| 久久一夜天堂av一区二区三区| 欧美日韩精品免费| 国产91丝袜在线18| 正在播放亚洲一区| 91福利国产成人精品照片| 国产欧美视频一区二区三区| 91成人免费电影| 亚洲老司机在线| 91美女在线观看| 日韩中文字幕av电影| 香蕉乱码成人久久天堂爱免费| 欧美日韩激情一区二区三区| 国产亚洲欧美日韩日本| 国产成a人无v码亚洲福利| 国产精品久久久久一区二区三区| 亚洲免费三区一区二区| 欧美日韩国产一级二级| 日韩欧美一区二区在线视频| 成人欧美一区二区三区视频网页| 欧美日韩专区在线| 依依成人精品视频| 五月天久久比比资源色| 亚洲福中文字幕伊人影院| 欧美视频一区二区三区在线观看| 91啪亚洲精品| 欧美不卡激情三级在线观看| 久久天堂av综合合色蜜桃网| 亚洲欧洲一区二区三区| 亚洲自拍偷拍图区| 国产欧美日韩在线| 91精品国产综合久久精品| 成人高清免费观看| eeuss鲁片一区二区三区在线看| 91免费看`日韩一区二区| 成人午夜免费av| 久久丁香综合五月国产三级网站 | 亚洲成人精品一区二区| 成人欧美一区二区三区黑人麻豆| 国产精品短视频| 亚洲天堂a在线| 精品久久久久av影院| 日韩精品一二三| 国产午夜精品久久| 久久亚洲捆绑美女| 成人h动漫精品一区二| 欧美经典一区二区| 欧美自拍丝袜亚洲| 亚洲欧美日韩一区二区 | 91在线视频观看| 欧美日韩国产另类一区| 久久久久久久久一| 丁香激情综合国产| 日韩视频在线你懂得| 亚洲嫩草精品久久| 日日摸夜夜添夜夜添亚洲女人| 亚洲国产美女搞黄色| 亚洲国产另类av| 精品国产髙清在线看国产毛片| 亚洲成av人影院在线观看网| 91精品国产日韩91久久久久久| 日韩精品一二三四| 欧美吻胸吃奶大尺度电影| 日韩高清欧美激情| 国产在线观看免费一区| 国产91丝袜在线18| 日本国产一区二区| 欧美精品乱码久久久久久| 国产精品久久国产精麻豆99网站| 91黄色免费版| 国产欧美日韩另类一区| 五月天国产精品| 国产精品久久久久精k8| 美女高潮久久久| 成人影视亚洲图片在线| 日韩成人免费看| 激情小说欧美图片| 欧美一区日本一区韩国一区| 性做久久久久久免费观看欧美| 免费精品视频在线| 91极品美女在线| 色悠久久久久综合欧美99| 亚洲欧洲成人自拍| 在线电影一区二区三区| 午夜视频一区在线观看| 青青草精品视频| 国产一区二区日韩精品| 日韩欧美国产综合| 91久久久免费一区二区| 国产成人在线网站| 国产精品69久久久久水密桃 | 亚洲一区影音先锋|