本文介紹一些Go語(yǔ)言的基礎(chǔ)語(yǔ)法。
涇縣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書(shū)合作)期待與您的合作!
先來(lái)看一個(gè)簡(jiǎn)單的go語(yǔ)言代碼:
go語(yǔ)言的注釋方法:
代碼執(zhí)行結(jié)果:
下面來(lái)進(jìn)一步介紹go的基礎(chǔ)語(yǔ)法。
go語(yǔ)言中格式化輸出可以使用 fmt 和 log 這兩個(gè)標(biāo)準(zhǔn)庫(kù),
常用方法:
示例代碼:
執(zhí)行結(jié)果:
更多格式化方法可以訪問(wèn)中的fmt包。
log包實(shí)現(xiàn)了簡(jiǎn)單的日志服務(wù),也提供了一些格式化輸出的方法。
執(zhí)行結(jié)果:
下面來(lái)介紹一下go的數(shù)據(jù)類型
下表列出了go語(yǔ)言的數(shù)據(jù)類型:
int、float、bool、string、數(shù)組和struct屬于值類型,這些類型的變量直接指向存在內(nèi)存中的值;slice、map、chan、pointer等是引用類型,存儲(chǔ)的是一個(gè)地址,這個(gè)地址存儲(chǔ)最終的值。
常量是在程序編譯時(shí)就確定下來(lái)的值,程序運(yùn)行時(shí)無(wú)法改變。
執(zhí)行結(jié)果:
執(zhí)行結(jié)果:
Go 語(yǔ)言的運(yùn)算符主要包括算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、賦值運(yùn)算符以及指針相關(guān)運(yùn)算符。
算術(shù)運(yùn)算符:
關(guān)系運(yùn)算符:
邏輯運(yùn)算符:
位運(yùn)算符:
賦值運(yùn)算符:
指針相關(guān)運(yùn)算符:
下面介紹一下go語(yǔ)言中的if語(yǔ)句和switch語(yǔ)句。另外還有一種控制語(yǔ)句叫select語(yǔ)句,通常與通道聯(lián)用,這里不做介紹。
if語(yǔ)法格式如下:
if ... else :
else if:
示例代碼:
語(yǔ)法格式:
另外,添加 fallthrough 會(huì)強(qiáng)制執(zhí)行后面的 case 語(yǔ)句,不管下一條case語(yǔ)句是否為true。
示例代碼:
執(zhí)行結(jié)果:
下面介紹幾種循環(huán)語(yǔ)句:
執(zhí)行結(jié)果:
執(zhí)行結(jié)果:
也可以通過(guò)標(biāo)記退出循環(huán):
--THE END--
Go for it 8A Unit 3What are you doing for vacation?教案一、教學(xué)內(nèi)容分析本單元是Go for it八年級(jí)上冊(cè)中第三單元“What are you doing for vacation?”。本單元的核心話題是談?wù)撐磥?lái)計(jì)劃,課文始終圍繞這一主題展開(kāi),我們要學(xué)習(xí)如何談?wù)摷倨诘挠?jì)劃(Vacation plans),及對(duì)將來(lái)的安排(Future plans)。讓學(xué)生學(xué)會(huì)用what詢問(wèn)將要干什么并回答;用when, who, where, how long, how等詞圍繞未來(lái)計(jì)劃進(jìn)行提問(wèn)和回答。語(yǔ)言知識(shí)和語(yǔ)言技能部分主要是圍繞核心話題時(shí)設(shè)計(jì)安排了許多聽(tīng),說(shuō),讀,寫(xiě)的任務(wù)活動(dòng),來(lái)不斷豐富鞏固這一話題的詞匯及習(xí)慣短語(yǔ)。我將靈活運(yùn)用這些活動(dòng),并將其中的一些活動(dòng)進(jìn)行變化或整合。二、教學(xué)目標(biāo)分析根據(jù)《英語(yǔ)課程標(biāo)準(zhǔn)》關(guān)于總目標(biāo)的具體描述,結(jié)合第三單元的教材內(nèi)容,我按語(yǔ)言知識(shí)、語(yǔ)言技能、學(xué)習(xí)策略、情感態(tài)度、文化意識(shí)五個(gè)方面將本單元的教學(xué)目標(biāo)細(xì)化:1、語(yǔ)言知識(shí)1.語(yǔ)音:在日常生活中做到語(yǔ)音、語(yǔ)調(diào)基本正確、自然、流暢。2.詞匯:(見(jiàn)教參)3.語(yǔ)法:①現(xiàn)在進(jìn)行時(shí)表示將來(lái)用法及去做某事的go doing②用what, when, where, who 等對(duì)句中的事件、時(shí)間、地點(diǎn)、人物等提問(wèn)。4.功能: 談?wù)撐磥?lái)的計(jì)劃安排5.話題: 熟悉有關(guān)度假的內(nèi)容。2、語(yǔ)言技能1.能聽(tīng)懂本單元學(xué)習(xí)活動(dòng)中的問(wèn)題,做出較得體的回答。2.掌握有關(guān)假期生活的動(dòng)詞且能熟練運(yùn)用;掌握wh-特殊疑問(wèn)句的運(yùn)用。運(yùn)用所學(xué)詞匯詢問(wèn)和表達(dá)未來(lái)打算,學(xué)會(huì)使用現(xiàn)在進(jìn)行時(shí)態(tài)表示未來(lái)計(jì)劃;4.能圍繞未來(lái)計(jì)劃這一話題作較具體的描述。5.能讀懂介紹未來(lái)打算的文章和日程安排。 6.學(xué)會(huì)書(shū)寫(xiě)即將發(fā)生的假期安排或計(jì)劃和科學(xué)安排自己的假期活動(dòng).3、情感態(tài)度1.運(yùn)用所學(xué)語(yǔ)言,積極投身到實(shí)踐活動(dòng)中去,實(shí)踐自己的價(jià)值。
2.能在描述自己的計(jì)劃和打算時(shí),激起學(xué)生更加熱愛(ài)祖國(guó)的美好河山和地球,從而為人類的美好明天貢獻(xiàn)自己的一份力量。4、學(xué)習(xí)策略1.能根據(jù)需要進(jìn)行有目的預(yù)習(xí),使其對(duì)教師的教學(xué)內(nèi)容起補(bǔ)充作用。2.抓住用英語(yǔ)交際的機(jī)會(huì),在交際中把注意力集中在意思的表達(dá)上,必要時(shí)借助手勢(shì)和表情。3.主動(dòng)參與學(xué)習(xí)活動(dòng),善于和他人合作。4.能利用網(wǎng)絡(luò)上的學(xué)習(xí)資源查找信息,用所學(xué)內(nèi)容進(jìn)行真實(shí)的交際,積極參與課外英語(yǔ)學(xué)習(xí)。5、文化意識(shí)1.初步了解英語(yǔ)國(guó)家的地理位置、歷史及假日的主要慶祝方式。2.了解和熟悉當(dāng)?shù)氐乩?,培養(yǎng)學(xué)生對(duì)本土文化的熱愛(ài),實(shí)現(xiàn)跨學(xué)科交流的目的。三、教學(xué)重難點(diǎn)重點(diǎn)是‘talk about future plans’及本單元出現(xiàn)的詞匯、句型和語(yǔ)法。主要句型如下:What are you doing for vacation? I am spending time with my friendsWhen are you going? I’m going next week.How long are you staying? We are staying for two weeks.難點(diǎn)①如何培養(yǎng)學(xué)生根據(jù)閱讀材料提高寫(xiě)作能力。②本單元出現(xiàn)的be+doing均表示“打算做某事”,這與以前所學(xué)的現(xiàn)在進(jìn)行時(shí)表“正在做某事”要學(xué)生注意通過(guò)上下文從意思上區(qū)分。四、學(xué)情分析及教學(xué)策略在上冊(cè)書(shū)中已學(xué)過(guò)用一般過(guò)去時(shí)談?wù)撨^(guò)去度假的表達(dá),具有了學(xué)習(xí)本單元知識(shí)的認(rèn)知前提,能自然地與本單元話題進(jìn)行銜接。因此,在本單元的對(duì)話中,教師可鼓勵(lì)學(xué)生將過(guò)去度假的經(jīng)歷結(jié)合到本單元的對(duì)話中,充實(shí)對(duì)話內(nèi)容,同時(shí)復(fù)習(xí)一般過(guò)去時(shí)。談?wù)撐磥?lái)計(jì)劃是人們?nèi)粘I钪杏龅降脑掝},故學(xué)生喜于用英語(yǔ)表達(dá)此類知識(shí)。教師可在課前請(qǐng)學(xué)生在各種資料上查閱一些國(guó)內(nèi)外風(fēng)景名勝的情況介紹,包括其名稱、所在國(guó)、氣候、風(fēng)景特點(diǎn)等, 以便在對(duì)話時(shí)有更大的自由表達(dá)空間,同時(shí)與其他同學(xué)互相學(xué)習(xí)、互通信息。同時(shí)教師也查閱一些資料提供給學(xué)生。教師應(yīng)從學(xué)生的生活經(jīng)驗(yàn)和興趣出發(fā),在課堂教學(xué)中應(yīng)設(shè)計(jì)任務(wù)型教學(xué)活動(dòng),體現(xiàn)以學(xué)生為主體的教學(xué)活動(dòng),讓學(xué)生在完成各項(xiàng)任務(wù)的過(guò)程中自主學(xué)習(xí)語(yǔ)言,提高綜合運(yùn)用語(yǔ)言能力。
五、主題語(yǔ)表
Beautiful, warm,Sunny, nice Sports camp ,at home, on the beach, in the mountain
↑ ↑
Weather Places
↖↙ Vacation plans ↗↘
Vacation words Description of the vacation
↓ ↓
Babysitting, spending time, visiting,relaxing, going camping, go hiking, Relaxing,exciting
going sightseeing, going fishing, goingshopping, go swimming, going bike riding, taking walks, renting videos
六、課時(shí)結(jié)構(gòu) 根據(jù)本單元教材的內(nèi)容、學(xué)生學(xué)習(xí)英語(yǔ)的特點(diǎn)和規(guī)律,我把本單元內(nèi)容整合為4課時(shí):Period1 (Section A 1a/1b/1c /2c SectionB1a/1b/4)Period2 (Section A 2a/2b/SectionB2a/2b/ 2c/Selfcheck2)Period3 (Section B2c/ Section A3a/3b/ 課外閱讀(go camping)/4)Period4 (Just for fun/SectionB3a/3b/3c/ Selfcheck1/自編的Selfcheck)每課時(shí)都有一個(gè)主題:Period1---Speaking,Period2---Listening, Period3---Reading, Period4--- Writing。但每課時(shí)都始終堅(jiān)持任務(wù)目標(biāo)→導(dǎo)說(shuō)領(lǐng)先→活動(dòng)或討論→反饋或筆頭落實(shí)→環(huán)環(huán)相扣,逐步鋪墊。其根本目的在于突出重點(diǎn),使課堂節(jié)奏緊湊,連貫,達(dá)到知識(shí)到能力的正向遷移。
七、教學(xué)過(guò)程設(shè)計(jì)Period1I.教學(xué)目標(biāo):1.知識(shí)目標(biāo):1).單詞: babysit, camp, bike, ride, sightseeing, fish, rent.2).句型: What are you doing for vacation? I’m visiting my grandmother.What’s she doing for vacation? She’s going camping.What are they doing for vacation? They’re relaxing at home.2.能力目標(biāo):1)學(xué)完本課,學(xué)會(huì)學(xué)習(xí)談?wù)搶?lái)的計(jì)劃。2)學(xué)習(xí)用現(xiàn)在進(jìn)行時(shí)表示將來(lái)時(shí)。 3)能積極思維,運(yùn)用所學(xué)單詞,短語(yǔ)及句型,結(jié)合實(shí)際生活進(jìn)行靈活運(yùn)用。3.情感態(tài)度目標(biāo):讓學(xué)生熟悉和理解不同的生活和度假方式。II.教學(xué)重點(diǎn): 掌握本課新單詞和句型和怎樣談?wù)搶?lái)的計(jì)劃,及提高學(xué)生說(shuō)的能力。III.教學(xué)難點(diǎn):掌握怎樣談?wù)搶?lái)的計(jì)劃的方法和提高學(xué)生說(shuō)的能力。IV. 教學(xué)設(shè)計(jì):Step1Brain stormCollect the names of activities which said by students.Step2 Revision (pair work)Revise something about vacation by asking:Where did you go on vacation?How was your vacation?Step3 Lead-in①通過(guò)看a video 進(jìn)行match 來(lái)復(fù)習(xí)現(xiàn)在進(jìn)行時(shí)。②Show students a big calendar which prepared before class, and say:Today is Thursday. Two days later is Saturday. I am staying at home on Saturday. And I am not going out.
And ask students:What about you? What are you doing on Saturday?學(xué)生做出各種不同的回答,教師將句子I am staying at home on Saturday。及學(xué)生回答中的動(dòng)詞短語(yǔ)寫(xiě)在黑板上,通過(guò)朗讀回顧知識(shí)。這里應(yīng)提醒學(xué)生注意be doing sth. 用現(xiàn)在進(jìn)行時(shí)代表將要發(fā)生的動(dòng)作,表示對(duì)未來(lái)的計(jì)劃和安排,譯為“我將要…”,“我打算…”,而不是正在做某事。eg . What’s she doing for vacation? 她假期要做什么?She’s babysitting her sister. 她要看她妹妹。這是我們進(jìn)入初中以來(lái)第一次接觸到將來(lái)時(shí)。這種用現(xiàn)在進(jìn)行時(shí)表示將來(lái)動(dòng)作的用法,實(shí)際上在英語(yǔ)中是很常見(jiàn)的。Step4 Presentation (SectionB1a /SectionA1a)①National Day is ing. What are you doing for vacation?(通過(guò)各種圖片來(lái)教學(xué)詞匯與短語(yǔ)--- going bike riding, going sightseeing, taking walks, going fishing, renting videos, camping, babysitting, exercising etc )②Finish Section B 1a. Match the words with the pictures. Keys: d b c a e.教師提醒學(xué)生,這些都是表動(dòng)作的短語(yǔ),要求學(xué)生朗讀,然后造句。③Finish Section A 1a. Look at the vacation activities in the picture. Make a list and add some more.Step5: Listening (Section A 1b)
Listen to the conversations and number the picture[1-3]We will listen twice.Thefirst time,just listen.The second time,listen and fill inthe blanks.Step6:Practice (Section A 1c)利用先前出示的圖片來(lái)操練What’s she/he/ doing for vacation?What are they doing for vacation?Step7: Surv
import "workname/packetfolder"
導(dǎo)入多個(gè)包
方法調(diào)用 包名.函數(shù)//不是函數(shù)或結(jié)構(gòu)體所處文件或文件夾名
packagename.Func()
前面加個(gè)點(diǎn)表示省略調(diào)用,那么調(diào)用該模塊里面的函數(shù),可以不用寫(xiě)模塊名稱了:
當(dāng)導(dǎo)入一個(gè)包時(shí),該包下的文件里所有init()函數(shù)都會(huì)被執(zhí)行,然而,有些時(shí)候我們并不需要把整個(gè)包都導(dǎo)入進(jìn)來(lái),僅僅是是希望它執(zhí)行init()函數(shù)而已。下劃線的作用僅僅是為了調(diào)用init()函數(shù),所以無(wú)法通過(guò)包名來(lái)調(diào)用包中的其他函數(shù)
import _ package
變量聲明必須要使用否則會(huì)報(bào)錯(cuò)。
全局變量運(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){}
使用大小來(lái)區(qū)分函數(shù)可見(jiàn)性
大寫(xiě)是public類型
小寫(xiě)是private類型
func prifunc int{}
func pubfunc int{}
聲明靜態(tài)變量
const value int
定義變量
var value int
聲明一般類型、接口和結(jié)構(gòu)體
聲明函數(shù)
func function () int{}
go里面所有的空值對(duì)應(yīng)如下
通道類型
內(nèi)建函數(shù) new 用來(lái)分配內(nèi)存,它的第一個(gè)參數(shù)是一個(gè)類型,不是一個(gè)值,它的返回值是一個(gè)指向新分配類型零值的指針
func new(Type) *Type
[這位博主有非常詳細(xì)的分析]
Go 語(yǔ)言支持并發(fā),我們只需要通過(guò) go 關(guān)鍵字來(lái)開(kāi)啟 goroutine 即可。
goroutine 是輕量級(jí)線程,goroutine 的調(diào)度是由 Golang 運(yùn)行時(shí)進(jìn)行管理的。
同一個(gè)程序中的所有 goroutine 共享同一個(gè)地址空間。
語(yǔ)法格式如下:
通道(channel)是用來(lái)傳遞數(shù)據(jù)的一個(gè)數(shù)據(jù)結(jié)構(gòu)。
通道的聲明
通道可用于兩個(gè) goroutine 之間通過(guò)傳遞一個(gè)指定類型的值來(lái)同步運(yùn)行和通訊。操作符 - 用于指定通道的方向,發(fā)送或接收。如果未指定方向,則為雙向通道。
[這里有比較詳細(xì)的用例]
go里面的空接口可以指代任何類型(無(wú)論是變量還是函數(shù))
聲明空接口
go里面的的強(qiáng)制類型轉(zhuǎn)換語(yǔ)法為:
int(data)
如果是接口類型的強(qiáng)制轉(zhuǎn)成其他類型的語(yǔ)法為:
go里面的強(qiáng)制轉(zhuǎn)換是將值復(fù)制過(guò)去,所以在數(shù)據(jù)量的時(shí)候有比較高的運(yùn)行代價(jià)
Go語(yǔ)言作為出現(xiàn)比較晚的一門(mén)編程語(yǔ)言,在其原生支持高并發(fā)、云原生等領(lǐng)域的優(yōu)秀表現(xiàn),像目前比較流行的容器編排技術(shù)Kubernetes、容器技術(shù)Docker都是用Go語(yǔ)言寫(xiě)的,像Java等其他面向?qū)ο蟮恼Z(yǔ)言,雖然也能做云原生相關(guān)的開(kāi)發(fā),但是支持的程度遠(yuǎn)沒(méi)有Go語(yǔ)言高,憑借其語(yǔ)言特性和簡(jiǎn)單的編程方式,彌補(bǔ)了其他編程語(yǔ)言一定程度上的不足,一度成為一個(gè)熱門(mén)的編程語(yǔ)言。
最近在學(xué)習(xí)Go語(yǔ)言,我之前使用過(guò)C#、Java等面向?qū)ο缶幊痰恼Z(yǔ)言,發(fā)現(xiàn)其中有很多的編程方式和其他語(yǔ)言有區(qū)別的地方,好記性不如爛筆頭,總結(jié)一下,和其他語(yǔ)言做個(gè)對(duì)比。這里只總結(jié)差異的地方,具體的語(yǔ)法不做詳細(xì)的介紹。
種一棵樹(shù)最好的時(shí)間是十年前,其次是現(xiàn)在。
3)變量初始化時(shí)候可以和其他語(yǔ)言一樣直接在變量后面加等號(hào),等號(hào)后面為要初始化的值,也可以使用變量名:=變量值的簡(jiǎn)單方式
3)變量賦值 Go語(yǔ)言的變量賦值和多數(shù)語(yǔ)言一致,但是Go語(yǔ)言提供了多重賦值的功能,比如下面這個(gè)交換i、j變量的語(yǔ)句:
在不支持多重賦值的語(yǔ)言中,交換兩個(gè)變量的值需要引入一個(gè)中間變量:
4)匿名變量
在使用其他語(yǔ)言時(shí),有時(shí)候要獲取一個(gè)值,卻因?yàn)樵摵瘮?shù)返回多個(gè)值而不得不定義很多沒(méi)有的變量,Go語(yǔ)言可以借助多重返回值和匿名變量來(lái)避免這種寫(xiě)法,使代碼看起來(lái)更優(yōu)雅。
假如GetName()函數(shù)返回3個(gè)值,分別是firstName,lastName和nickName
若指向獲得nickName,則函數(shù)調(diào)用可以這樣寫(xiě)
這種寫(xiě)法可以讓代碼更清晰,從而大幅降低溝通的復(fù)雜度和維護(hù)的難度。
1)基本常量
常量使用關(guān)鍵字const 定義,可以限定常量類型,但不是必須的,如果沒(méi)有定義常量的類型,是無(wú)類型常量
2)預(yù)定義常量
Go語(yǔ)言預(yù)定義了這些常量 true、false和iota
iota比較特殊,可以被任務(wù)是一個(gè)可被編譯器修改的常量,在每個(gè)const關(guān)鍵字出現(xiàn)時(shí)被重置為0,然后在下一個(gè)const出現(xiàn)之前每出現(xiàn)一個(gè)iota,其所代表的數(shù)字會(huì)自動(dòng)加1.
3)枚舉
1)int 和int32在Go語(yǔ)言中被認(rèn)為是兩種不同類型的類型
2)Go語(yǔ)言定義了兩個(gè)浮點(diǎn)型float32和float64,其中前者等價(jià)于C語(yǔ)言的float類型,后者等價(jià)于C語(yǔ)言的double類型
3)go語(yǔ)言支持復(fù)數(shù)類型
復(fù)數(shù)實(shí)際上是由兩個(gè)實(shí)數(shù)(在計(jì)算機(jī)中使用浮點(diǎn)數(shù)表示)構(gòu)成,一個(gè)表示實(shí)部(real)、一個(gè)表示虛部(imag)。也就是數(shù)學(xué)上的那個(gè)復(fù)數(shù)
復(fù)數(shù)的表示
實(shí)部與虛部
對(duì)于一個(gè)復(fù)數(shù)z=complex(x,y),就可以通過(guò)Go語(yǔ)言內(nèi)置函數(shù)real(z)獲得該復(fù)數(shù)的實(shí)部,也就是x,通過(guò)imag(z)獲得該復(fù)數(shù)的虛部,也就是y
4)數(shù)組(值類型,長(zhǎng)度在定義后無(wú)法再次修改,每次傳遞都將產(chǎn)生一個(gè)副本。)
5)數(shù)組切片(slice)
數(shù)組切片(slice)彌補(bǔ)了數(shù)組的不足,其數(shù)據(jù)結(jié)構(gòu)可以抽象為以下三個(gè)變量:
6)Map 在go語(yǔ)言中Map不需要引入任何庫(kù),使用很方便
Go循環(huán)語(yǔ)句只支持for關(guān)鍵字,不支持while和do-while
goto語(yǔ)句的語(yǔ)義非常簡(jiǎn)單,就是跳轉(zhuǎn)到本函數(shù)內(nèi)的某個(gè)標(biāo)簽
今天就介紹到這里,以后我會(huì)在總結(jié)Go語(yǔ)言在其他方面比如并發(fā)編程、面向?qū)ο?、網(wǎng)絡(luò)編程等方面的不同及使用方法。希望對(duì)大家有所幫助。