1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      go語言語法特性,go語言 特點

      go語言語法(基礎(chǔ)語法篇)

      import "workname/packetfolder"

      “只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是創(chuàng)新互聯(lián)的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個不僅審美在線,而且實用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對成都網(wǎng)站設(shè)計、做網(wǎng)站、網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)頁設(shè)計、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無止境。

      導(dǎo)入多個包

      方法調(diào)用 包名.函數(shù)//不是函數(shù)或結(jié)構(gòu)體所處文件或文件夾名

      packagename.Func()

      前面加個點表示省略調(diào)用,那么調(diào)用該模塊里面的函數(shù),可以不用寫模塊名稱了:

      當(dāng)導(dǎo)入一個包時,該包下的文件里所有init()函數(shù)都會被執(zhí)行,然而,有些時候我們并不需要把整個包都導(dǎo)入進(jìn)來,僅僅是是希望它執(zhí)行init()函數(shù)而已。下劃線的作用僅僅是為了調(diào)用init()函數(shù),所以無法通過包名來調(diào)用包中的其他函數(shù)

      import _ package

      變量聲明必須要使用否則會報錯。

      全局變量運(yùn)行聲明但不使用。

      func 函數(shù)名 (參數(shù)1,參數(shù)2,...) (返回值a 類型a, 返回值b 類型b,...)

      func 函數(shù)名 (參數(shù)1,參數(shù)2,...) (返回值類型1, 返回值類型2,...)

      func (this *結(jié)構(gòu)體名) 函數(shù)名(參數(shù) string) (返回值類型1, 返回值類型2){}

      使用大小來區(qū)分函數(shù)可見性

      大寫是public類型

      小寫是private類型

      func prifunc int{}

      func pubfunc int{}

      聲明靜態(tài)變量

      const value int

      定義變量

      var value int

      聲明一般類型、接口和結(jié)構(gòu)體

      聲明函數(shù)

      func function () int{}

      go里面所有的空值對應(yīng)如下

      通道類型

      內(nèi)建函數(shù) new 用來分配內(nèi)存,它的第一個參數(shù)是一個類型,不是一個值,它的返回值是一個指向新分配類型零值的指針

      func new(Type) *Type

      [這位博主有非常詳細(xì)的分析]

      Go 語言支持并發(fā),我們只需要通過 go 關(guān)鍵字來開啟 goroutine 即可。

      goroutine 是輕量級線程,goroutine 的調(diào)度是由 Golang 運(yùn)行時進(jìn)行管理的。

      同一個程序中的所有 goroutine 共享同一個地址空間。

      語法格式如下:

      通道(channel)是用來傳遞數(shù)據(jù)的一個數(shù)據(jù)結(jié)構(gòu)。

      通道的聲明

      通道可用于兩個 goroutine 之間通過傳遞一個指定類型的值來同步運(yùn)行和通訊。操作符 - 用于指定通道的方向,發(fā)送或接收。如果未指定方向,則為雙向通道。

      [這里有比較詳細(xì)的用例]

      go里面的空接口可以指代任何類型(無論是變量還是函數(shù))

      聲明空接口

      go里面的的強(qiáng)制類型轉(zhuǎn)換語法為:

      int(data)

      如果是接口類型的強(qiáng)制轉(zhuǎn)成其他類型的語法為:

      go里面的強(qiáng)制轉(zhuǎn)換是將值復(fù)制過去,所以在數(shù)據(jù)量的時候有比較高的運(yùn)行代價

      Go語言和其他語言的不同之基本語法

      Go語言作為出現(xiàn)比較晚的一門編程語言,在其原生支持高并發(fā)、云原生等領(lǐng)域的優(yōu)秀表現(xiàn),像目前比較流行的容器編排技術(shù)Kubernetes、容器技術(shù)Docker都是用Go語言寫的,像Java等其他面向?qū)ο蟮恼Z言,雖然也能做云原生相關(guān)的開發(fā),但是支持的程度遠(yuǎn)沒有Go語言高,憑借其語言特性和簡單的編程方式,彌補(bǔ)了其他編程語言一定程度上的不足,一度成為一個熱門的編程語言。

      最近在學(xué)習(xí)Go語言,我之前使用過C#、Java等面向?qū)ο缶幊痰恼Z言,發(fā)現(xiàn)其中有很多的編程方式和其他語言有區(qū)別的地方,好記性不如爛筆頭,總結(jié)一下,和其他語言做個對比。這里只總結(jié)差異的地方,具體的語法不做詳細(xì)的介紹。

      種一棵樹最好的時間是十年前,其次是現(xiàn)在。

      3)變量初始化時候可以和其他語言一樣直接在變量后面加等號,等號后面為要初始化的值,也可以使用變量名:=變量值的簡單方式

      3)變量賦值 Go語言的變量賦值和多數(shù)語言一致,但是Go語言提供了多重賦值的功能,比如下面這個交換i、j變量的語句:

      在不支持多重賦值的語言中,交換兩個變量的值需要引入一個中間變量:

      4)匿名變量

      在使用其他語言時,有時候要獲取一個值,卻因為該函數(shù)返回多個值而不得不定義很多沒有的變量,Go語言可以借助多重返回值和匿名變量來避免這種寫法,使代碼看起來更優(yōu)雅。

      假如GetName()函數(shù)返回3個值,分別是firstName,lastName和nickName

      若指向獲得nickName,則函數(shù)調(diào)用可以這樣寫

      這種寫法可以讓代碼更清晰,從而大幅降低溝通的復(fù)雜度和維護(hù)的難度。

      1)基本常量

      常量使用關(guān)鍵字const 定義,可以限定常量類型,但不是必須的,如果沒有定義常量的類型,是無類型常量

      2)預(yù)定義常量

      Go語言預(yù)定義了這些常量 true、false和iota

      iota比較特殊,可以被任務(wù)是一個可被編譯器修改的常量,在每個const關(guān)鍵字出現(xiàn)時被重置為0,然后在下一個const出現(xiàn)之前每出現(xiàn)一個iota,其所代表的數(shù)字會自動加1.

      3)枚舉

      1)int 和int32在Go語言中被認(rèn)為是兩種不同類型的類型

      2)Go語言定義了兩個浮點型float32和float64,其中前者等價于C語言的float類型,后者等價于C語言的double類型

      3)go語言支持復(fù)數(shù)類型

      復(fù)數(shù)實際上是由兩個實數(shù)(在計算機(jī)中使用浮點數(shù)表示)構(gòu)成,一個表示實部(real)、一個表示虛部(imag)。也就是數(shù)學(xué)上的那個復(fù)數(shù)

      復(fù)數(shù)的表示

      實部與虛部

      對于一個復(fù)數(shù)z=complex(x,y),就可以通過Go語言內(nèi)置函數(shù)real(z)獲得該復(fù)數(shù)的實部,也就是x,通過imag(z)獲得該復(fù)數(shù)的虛部,也就是y

      4)數(shù)組(值類型,長度在定義后無法再次修改,每次傳遞都將產(chǎn)生一個副本。)

      5)數(shù)組切片(slice)

      數(shù)組切片(slice)彌補(bǔ)了數(shù)組的不足,其數(shù)據(jù)結(jié)構(gòu)可以抽象為以下三個變量:

      6)Map 在go語言中Map不需要引入任何庫,使用很方便

      Go循環(huán)語句只支持for關(guān)鍵字,不支持while和do-while

      goto語句的語義非常簡單,就是跳轉(zhuǎn)到本函數(shù)內(nèi)的某個標(biāo)簽

      今天就介紹到這里,以后我會在總結(jié)Go語言在其他方面比如并發(fā)編程、面向?qū)ο蟆⒕W(wǎng)絡(luò)編程等方面的不同及使用方法。希望對大家有所幫助。

      go語言到底有什么好處

      1. 部署簡單

      Go

      編譯生成的是一個靜態(tài)可執(zhí)行文件,除了glibc外沒有其他外部依賴。這讓部署變得異常方便:目標(biāo)機(jī)器上只需要一個基礎(chǔ)的系統(tǒng)和必要的管理、監(jiān)控工具,完全不需要操心應(yīng)用所需的各種包、庫的依賴關(guān)系,大大減輕了維護(hù)的負(fù)擔(dān)。

      2. 并發(fā)性好

      Goroutine和channel使得編寫高并發(fā)的服務(wù)端軟件變得相當(dāng)容易,很多情況下完全不需要考慮鎖機(jī)制以及由此帶來的各種問題。單個Go應(yīng)用也能有效的利用多個CPU核,并行執(zhí)行的性能好。

      3. 良好的語言設(shè)計

      從學(xué)術(shù)的角度講Go語言其實非常平庸,不支持許多高級的語言特性;但從工程的角度講,Go的設(shè)計是非常優(yōu)秀的:規(guī)范足夠簡單靈活,有其他語言基礎(chǔ)的程序員都能迅速上手。更重要的是

      Go 自帶完善的工具鏈,大大提高了團(tuán)隊協(xié)作的一致性。

      4. 執(zhí)行性能好

      雖然不如 C 和 Java,但相比于其他編程語言,其執(zhí)行性能還是很好的,適合編寫一些瓶頸業(yè)務(wù),內(nèi)存占用也非常省。


      當(dāng)前標(biāo)題:go語言語法特性,go語言 特點
      標(biāo)題路徑:http://www.ef60e0e.cn/article/heoopp.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        都江堰市| 舟山市| 东港市| 七台河市| 韶关市| 乌鲁木齐县| 兴安盟| 普格县| 奉化市| 金山区| 西盟| 沁源县| 枣庄市| 荆州市| 杭锦旗| 攀枝花市| 阳高县| 江安县| 芷江| 永兴县| 准格尔旗| 金堂县| 迁西县| 花垣县| 焉耆| 泰顺县| 如皋市| 左云县| 灵宝市| 泗阳县| 柳林县| 丰宁| 伊川县| 武山县| 海兴县| 施甸县| 延津县| 鲁山县| 察雅县| 永康市| 海盐县|