61396-Go語言程序設(shè)計項目化教程(微課版)2.1 基本運算_第1頁
61396-Go語言程序設(shè)計項目化教程(微課版)2.1 基本運算_第2頁
61396-Go語言程序設(shè)計項目化教程(微課版)2.1 基本運算_第3頁
61396-Go語言程序設(shè)計項目化教程(微課版)2.1 基本運算_第4頁
61396-Go語言程序設(shè)計項目化教程(微課版)2.1 基本運算_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

基本運算關(guān)鍵字與標識符數(shù)據(jù)類型變量和常量運算符01.03.02.04.目錄字符串拼接05.數(shù)據(jù)類型轉(zhuǎn)換06.01關(guān)鍵字和標識符25個關(guān)鍵字標識符命名規(guī)則1關(guān)鍵字和標識符breakdefaultfuncinterfaceselectcasedefergomapstructchanelsegotopackageswitchconstfallthroughifrangetypecontinueforimportreturnvar關(guān)鍵字:被賦予了特殊含義的單詞,又叫保留字。Go語言中的關(guān)鍵字一共有

25個。標識符特點標識符的命名要盡量采取簡短且有意義。不能和標準庫中的包名重復。為變量、函數(shù)、常量命名時采用駝峰命名法,例如stuId、stuName。標識符聲明使用標識符之前必須進行聲明。聲明一個標識符就是將這個標識符與常量、類型、變量、函數(shù)或者代碼包綁定在一起。在同一個代碼塊內(nèi)標識符的名稱不能重復。標識符定義Go語言對各種變量、方法、函數(shù)等命名時使用的字符序列。由若干個字母、下劃線(_)、和數(shù)字組成,且第一個字符必須是字母。1關(guān)鍵字和標識符標識符規(guī)則由26個英文字母、0~9、_組成不能以數(shù)字開頭Go語言中嚴格區(qū)分大小寫標識符不能包含空格不能以系統(tǒng)保留關(guān)鍵字作為標識符標識符的命名要盡量采取簡短且有意義的詞不能和標準庫中的包名重復1關(guān)鍵字和標識符1關(guān)鍵字和標識符預(yù)定義標識符:自身具有一些特殊含義的標識符。Go語言中的預(yù)定義標識符一共有

37個。內(nèi)建常量nil、iota、true、false內(nèi)建類型int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64、uintprt、float32、float64、complex64、complex128、bool、byte、rune、string、error內(nèi)建函數(shù)append、cap、close、complex、copy、delete、imag、len、make、new、panic、real、recovervarstuIdint//聲明一個int類型、名為stuId的標識符varstuNamestring=“姓名“//聲明一個string類型、名為stuName、值為姓名的標識符標識符聲明示例錯誤標識符示例0102var1numint//不能以數(shù)字開頭varbreakstring//不能以系統(tǒng)保留關(guān)鍵字作為標識符1關(guān)鍵字和標識符02變量和常量變量的定義變量的標準格式聲明變量的批量格式聲明變量的簡短格式聲明常量的定義常量的顯式定義常量的隱式定義varaint=100x000110變量內(nèi)存varp*int=&a0x00010x0005變量:一種能夠儲存值或者計算結(jié)果的抽象概念。

是內(nèi)存中的一個數(shù)據(jù)存儲空間的標識,變量可以看做是一個內(nèi)存地址,通過內(nèi)存地址,我們可以找到這個地址所存儲的數(shù)據(jù)。2變量和常量局部變量函數(shù)體內(nèi)聲明的變量稱之為局部變量,作用域只在函數(shù)體內(nèi),函數(shù)的參數(shù)和返回值變量都屬于局部變量。函數(shù)調(diào)用結(jié)束后這個局部變量就會被銷毀。全局變量在函數(shù)體外聲明的變量稱之為全局變量,全局變量聲明必須以var關(guān)鍵字開頭,如果想要在外部包中使用全局變量的首字母必須大寫。形參變量在定義函數(shù)時函數(shù)名后面括號中的變量叫做形式參數(shù)變量。形式參數(shù)只在函數(shù)調(diào)用時才會生效,函數(shù)調(diào)用結(jié)束后就會被銷毀。2變量和常量2變量和常量關(guān)鍵字var開頭,后置變量類型格式:var變量名變量類型標準初始化格式:var變量名變量類型=初始化值變量標準格式聲明示例1:vargoodsNamestring="Go語言“示例2:varstuNamestringstuName=“小明“2變量和常量存放一組變量定義格式:var(a變量類型b變量類型c,d變量類型)變量批量格式聲明示例:var(goodsPricefloat32goodsNum,goodsIdint)goodsId=123goodsNum=5goodsPrice=6.72變量和常量定義在函數(shù)內(nèi)部的顯式初始化,不提供數(shù)據(jù)類型格式:變量名:=變量值變量名1,變量名2:=變量值1,變量值2變量簡短格式聲明示例1:goodsName:="Go語言“示例2:goodsSize,goodsID:="50kg“,”go0001”2變量和常量常量的數(shù)據(jù)類型布爾型數(shù)字型整數(shù)浮點復數(shù)字符串型標準定義格式:const常量名[常量類型]=常量值顯式定義格式:const常量名

常量類型=常量值隱式定義格式:const常量名=常量值常量:一種簡單值的標識符,在程序運行時它的值不會被改變。2變量和常量packagemainimport"fmt"funcmain(){

constaint=1

constb,c=2,"C" fmt.Println(a) fmt.Println(b) fmt.Println(c)}運行結(jié)果為:12Ca是顯式類型定義,即能看到數(shù)值類型。b,c是隱式類型定義。03數(shù)據(jù)類型布爾型(bool)數(shù)字類型字符串類型派生類型3數(shù)據(jù)類型類型解釋布爾型(bool)布爾型的值只可以是常量、true或者false數(shù)字類型整型(int)和浮點型(float32、float64)字符串類型字符串就是一串固定長度的字符連接起來的字符序列派生類型指針類型(Pointer)數(shù)組類型結(jié)構(gòu)體類型(struct)Channel類型函數(shù)類型切片類型接口類型(interface)Map類型3數(shù)據(jù)類型數(shù)字類型解釋uint8無符號8位整型(0到255)uint16無符號16位整型(0到65535)uint32無符號32位整型(0到4294967295)uint64無符號64位整型(0到18446744073709551615)int8有符號8位整型(-128到127)int16有符號16位整型(-32768到32767)int32有符號32位整型(-2147483648到2147483647)int64有符號64位整型(-9223372036854775808到9223372036854775807)float32IEEE-75432位浮點型數(shù)float64IEEE-75464位浮點型數(shù)complex6432位實數(shù)和虛數(shù)complex12864位實數(shù)和虛數(shù)byte類似uint8rune類似int32uintptr無符號整型,用于存放一個指針3數(shù)據(jù)類型packagemainimport"fmt"funcmain(){varnumintfmt.Println("num=",num)varpai_32float32=3.12345678901234567890varpai_64float64=3.12345678901234567890fmt.Println("pai_32=",pai_32)fmt.Println("pai_64=",pai_64)varnum1complex64=1.2+3ivarnum2=complex(1.2,3)fmt.Printf("num1的數(shù)據(jù)類型是:%T\n",num1)fmt.Printf("num2的數(shù)據(jù)類型是:%T\n",num2)}運行結(jié)果為:num=0pai_32=3.1234567pai_64=3.1234567890123457num1的數(shù)據(jù)類型是:complex64num2的數(shù)據(jù)類型是:complex128數(shù)值類型默認值為0float32大約可以提供小數(shù)點后6到8位的精度float64可以提供小數(shù)點后15位的精度Complex64分為32位實數(shù)和32位虛數(shù)Complex128分為64位實數(shù)和64位虛數(shù)04運算符算術(shù)運算符關(guān)系運算符邏輯運算符位運算符賦值運算符其它運算符運算符描述實例實例結(jié)果+相加1+12-相減1-10*相乘1*11/相除1/21%求余(取模)1%2(1÷2=0……1)1++自增a=1a++(等價于a=a+1)a=2--自減a=1a—(等價于a=a-1)a=0+正號+11-負號-1-1+字符串相加(連)"hello"+"World"helloWorld4算數(shù)運算符兩個運算數(shù)的類型必須相同并且為基本數(shù)據(jù)類型packagemainimport"fmt"funcmain(){ fmt.Println("1.0/2=",1.0/2)}運算結(jié)果為:1.0/2=0.5packagemainimport"fmt"funcmain(){ fmt.Println("1/2=",1/2)}運算結(jié)果為:1/2=04算數(shù)運算符 varaint=1 varbint a++ //正確 b=(a++) //錯誤,因為自增自減只能當作一個獨立的語句使用 ++a //錯誤,因為自增自減只能寫在變量的后面自增和自減在Go語言中構(gòu)成單獨的語句,不是表達式4算數(shù)運算符運算符運算含義實例==等于檢查兩個值是否相等,如果相等返回True否則返回False。(1==1)為True(1==2)為False!=不等于檢查兩個值是否不相等,如果不相等返回True否則返回False。(1!=2)為True(1!=1)為False>

大于檢查左邊值是否大于右邊值,如果是返回True否則返回False。(1>0)為True(1>2)為False<

小于檢查左邊值是否小于右邊值,如果是返回True否則返回False。(1<2)為True(1<0)為False>=大于等于檢查左邊值是否大于等于右邊值,如果是返回True否則返回False。(1>=1)為True(1>=2)為False<=小于等于檢查左邊值是否小于等于右邊值,如果是返回True否則返回False。(1<=2)為True(1<=0)為False4關(guān)系運算符運算符描述含義實例&&邏輯與邏輯AND運算符。如果兩邊的操作數(shù)都是True,則條件True,否則為False。(一假為假)varabool=truevarbbool=false(a&&a)為True(a&&b)為False(b&&b)為False||邏輯或邏輯OR運算符。如果兩邊的操作數(shù)有一個True,則條件True,否則為False。(一真為真)varabool=truevarbbool=false(a||a)為True(a||b)為True(b||b)為False!邏輯非邏輯NOT運算符。如果條件為True,則邏輯NOT條件False,否則為True。(結(jié)果取反)varabool=truevarbbool=false(!a)為False(!b)為True4邏輯運算符運算符含義按位與(&)兩位全為1,結(jié)果為1,否則為0。(全1為1)按位或(|)兩位有一個為1,結(jié)果為1,否則為0。(有1為1)按位異或(^)兩位一個為0,一個為1,結(jié)果為1,否則為0。(相同為0,不同為1)pqp&qp|qp^q000000101111110100114位運算符運算符含義左移(<<)右邊的數(shù)指定移動的位數(shù),符號位不變,低位補0右移(>>)低位溢出,符號位不變,并用符號位補溢出的高位4位移運算符packagemainfuncmain(){ varaint=1 varbint=2 println("a&b=",a<<b) println("a&b=",a>>b)}運行結(jié)果為:a<<b=4a>>b=01的二進制為01,左移2位是100,轉(zhuǎn)換成十進制為4。1的二進制為01,右移2位是00,轉(zhuǎn)換成十進制是0。運算符描述含義實例=等于簡單的賦值運算符,將一個表達式的值賦給一個左值c=a+b將a+b表達式結(jié)果賦值給c+=加等于相加后再賦值a+=b等價于a=a+b-=減等于相減后再賦值a-=b等價于a=a-b*=乘等于相乘后再賦值a*=b等價于a=a*b/=除等于相除后再賦值a/=b等價于a=a/b%=取模等于求余后再賦值a%=b等價于a=a%b<<=左移等于左移后賦值a<<=2等價于a=a<<2>>=右移等于右移后賦值a>>=2等價價于a=a>>2&=位于等于按位與后賦值a&=2等價于a=a&2^=異或等于按位異或后賦值a^=2等價于a=a^2|=位或等于按位或后賦值a|=2等價于a=a|24賦值運算符運算符描述實例&返回變量存儲地址&a;取出變量的實際地址*指針變量*a;定義一個指針變量go不支持三元運算符若要實現(xiàn)三元運算,可以使用if-else進行實現(xiàn)4其它運算符05字符串拼接5種拼接方式5字符串拼接str=str1+str2str=fmt.Sprintf("%s%d%s",str1,i,str2)“+”sprintf()varstrs[]string=[]string{str1,str2}str:=strings.Join(strs,"")join()//定義字節(jié)緩沖變量btvarbtbytes.Bufferbt.WriteString(str1)bt.WriteString(str2)str:=bt.String()buffer.WriteString()varbuildstrings.Builderbuild.WriteString(str1)build.WriteString(str2)str:=build.String()buffer.Builder()packagemainimport( "bytes" "fmt")funcmain(){ varstr1="a" varstr2="b" varstrA=str1+str2 fmt.Println(strA) varstrB=fmt.Sprintf("%s%d%s",str1,1,str2) fmt.Println(strB) varbtbytes.Buffer bt.WriteString(str1) bt.WriteString(str2) strC:=bt.String() fmt.Println(strC)}運算

溫馨提示

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

最新文檔

評論

0/150

提交評論