《Go語言從入門到精通》Go語言的基本語法與開發(fā)基礎_第1頁
《Go語言從入門到精通》Go語言的基本語法與開發(fā)基礎_第2頁
《Go語言從入門到精通》Go語言的基本語法與開發(fā)基礎_第3頁
《Go語言從入門到精通》Go語言的基本語法與開發(fā)基礎_第4頁
《Go語言從入門到精通》Go語言的基本語法與開發(fā)基礎_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Go語言的基本語法與開發(fā)基礎Go語言從入門到精通了解Go語言的語言要素和基本語法規(guī)范學習如何獲取第三方包并編寫自己的包01GRAMMAR02BUILTIN03PACKAGEtarget目標了解和掌握常用的內置函數目錄導航4.14.24.3Go語言語法要素與代碼規(guī)范代碼格式化工具gofmt常用的輔助性內置函數……Contentsfor

i

:=

1;

i

<

10;

i++

{

fmt.Println(i)}

嚴格的語法規(guī)范for

i

:=

1;

i

<

10;

i

++{

fmt.Println(i)}

不光是語法,還有邏輯檢查聲明了變量但未使用都會報錯語法嚴格的益處Go語言是一門比較講究代碼書寫規(guī)范的語言付出的代價并非沒有收獲

減少出現編碼階段錯誤的概率使得代碼更加高效Go語言文件編碼Go語言代碼文件要求UTF-8編碼內部的字符串也是默認以UTF-8編碼的可以很好地適應多語言語句、代碼塊與執(zhí)行順序for

i

:=

1;

i

<

10;

i++

{

a

:=

i

+

1

fmt.Println(a)}

代碼塊語句語句語句執(zhí)行順序語句分割for

i

:=

1;

i

<

10;

i++

{

a

:=

i

+

1

fmt.Println(a)}

語句末尾一般無需分號特殊情況也需要用到分號特殊情況:一般同一行內出現多條語句時,需要分號分隔語法記號Go語言中,每條語句是由語法記號(token)或者叫語法實體(entity)組成的。語法記號主要包括四類:標識符(identifier)關鍵字(keyword)操作符或標點符號(operatororpunctuation)數值量(literal)標識符標識符包括類型名、變量名和函數名等;標識符一般由字母和數字組成并且必須由一個字母開始;所有標識符(包括類型名、變量名、函數名等)均是大小寫敏感的(大小寫不同的會被認為是兩個不同的標識符);預定義標識符(predefinedidentifiers)

int、float64、string、bool

等類型定義

true、false、nil

等固有取值

make、len

等內置函數注意,不要再次定義這些預定義標識符,即不要用這些標識符作為變量、函數等的名字。關鍵字固有的語法要素,主要包括break、default、func、interface、selectcase、defer、go、map、structchan、else、goto、package、switchconst、fallthrough、if、range、typecontinue、for、import、return、var注意:與預定義標識符不同操作符和標點符號操作符和標點符號是Go語言中用于組成表達式或者輔助表示一些語法含義的字符。主要包括+&+=&=&&==!=()-|-=|=||<<=[]*^*=^=<->>={}/<</=<<=++=:=,;%>>%=>>=--!....:&^&^=數值量數值量是在Go語言中對各種數值的表達形式,除了數字外,也包括字符串的值、布爾類型的值和其他復合類型的值等

123

//

代表一個整數

0xFFACDE

//

0x開頭的16進制數字用于表達一個整數

32.8

//

代表一個浮點數(小數)

6.68e-11

//

代表一個用科學記數法表示的浮點數

88.3528e-11i

//

表示一個數學上的復數,前面是實部,后面是虛部

"Hello

world!"

//

字符串的表示形式

`Hello

world!`

//

用反引號`也可以用來括起字符串標識符的可見性小寫字母開始的所有標識符均只能在代碼本身所在的包中使用大寫字母開頭的標識符稱作“被導出的”(exported)標識符,可以供外部其他包(包括主程序所在的main包)使用這里的標識符一般用于變量和函數,以及自定義類型目錄導航4.14.24.3……Go語言語法要素與代碼規(guī)范代碼格式化工具gofmt常用的輔助性內置函數……Contentsgofmt的作用package

main

import

("fmt")

func

main()

{

a:=1

if

(a

>=

1)

{fmt.Println(a)}}

不規(guī)范的代碼新版的寫法,舊版是gofmt-wmain.go經過gofmt處理之后package

main

import

(

"fmt")

func

main()

{

a

:=

1

if

a

>=

1

{

fmt.Println(a)

}}規(guī)范的代碼格式目錄導航4.24.34.4……代碼格式化工具gofmt常用的輔助性內置函數格式化輸出函數fmt.Printf……Contents常用內置函數print和printlnlen和capmake、newcopy、deletepanic、recover目錄導航4.34.44.5……常用的輔助性內置函數格式化輸出函數fmt.Printf如何獲取和使用第三方包……Contentsfmt.Printf函數

var

a

int

a

=

8

fmt.Printf("a=%d",

a)

優(yōu)點:通過格式化符使得輸出更靈活,書寫更易組織常用格式化符整數格式化符%d16進制格式化符%x

和%X二進制形式格式化符%b浮點數格式化符%f其他的浮點數格式化符%e、%E、%g、%G布爾類型的格式化符%tUnicode碼相關格式化符%c、%q

和%U字符串格式化符%s指針格式化符%p萬能格式化符%v輸出數值類型的格式化符%T格式化符加修飾a

:=

1.6879

fmt.Printf("%9.2f\n",

a)fmt.Printf("%9.6f\n",

a)fmt.Printf("%09.2f\n",

a)fmt.Printf("%-9.2f\n",

a)

轉義符var

a

int

a

=

8

fmt.Printf("a=%d\nb=99%%\nc=?\n",

a)輸出百分號本身輸出回車符目錄導航4.44.54.6……格式化輸出函數fmt.Printf如何獲取和使用第三方包如何定義和使用常量……Contentsgoget命令小提示:注意為避免GoModules干擾,設置環(huán)境變量GO111MODULE=off目錄導航4.54.64.7……如何獲取和使用第三方包如何定義和使用常量變量、函數等標識符聲明的作用范圍……Contents常量的概念與定義

const

a

=

10

a

=

17

fmt.Println(a)

將編譯報錯常量是表示不會變化的值iota常量const

(

black

=

iota

white

red

green

blue)

func

main()

{

fmt.Println(black,

white,

red,

green,

blue)}將為0,white為1,后面依次遞增目錄導航4.64.74.8……如何定義和使用常量變量、函數等標識符聲明的作用范圍tools包——編寫自己的函數庫Contents標識符的作用范圍標識符有效范圍的起始點在其聲明之后,也就是“先聲明再使用”;標識符有效范圍的結束點在其聲明后最近的代碼塊末尾,即到最近的右花括號為止;

同一級別的代碼塊內不可以重復定義一個標識符;標識符后如果有新開始的嵌套代碼塊(低一級的代碼塊),則該標識符在該代碼塊中仍然有效;但如果該代碼塊中再次聲明了該標識符,則會被視為一個新的標識符,并會替代原標識符,但僅限于這個嵌套代碼塊之內有效。標識符的作用范圍如果標識符不在任何代碼塊內(成對的花括號內),則從聲明開始一直有效;即全局變量;

如果定義的全局范圍標識符不是以大寫字母開頭,則最多只在代碼所在的本包內有效;如果是以大寫字母開頭的,則可以被其他包訪問,稱作“被導出的”(exported)標識符;全局變量在定義的時候不能使用簡化聲明方式(既用“:=”聲明并賦初值的方式)目錄導航4.74.8……變量、函數等標識符聲明的作用范圍tools包——編寫自己的函數庫Contents自定義包的實現——GOPATH/src/tools/tools.gopackage

tools

import

(

"fmt")

func

Printfln(format

strin

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論