• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            eXile 的專欄

            好玩的Go語(yǔ)言

                 1.什么是Go語(yǔ)言

                Go語(yǔ)言是Google推出的新的一個(gè)致力于系統(tǒng)級(jí)的編程語(yǔ)言。很多人說(shuō)它是 C + Python,既有c的靈活高效,又有Python的簡(jiǎn)單易用,它的原則是 Simple && Fast。它的語(yǔ)法規(guī)則很簡(jiǎn)單。其官方網(wǎng)站上有一個(gè)《三天學(xué)會(huì)Go語(yǔ)言》的教程,包括三部分:基本結(jié)構(gòu),面向?qū)ο螅l(fā)。一個(gè)周末的時(shí)間就差不多可以掌握其基本面貌。相對(duì)來(lái)說(shuō),第三部分“并發(fā)”似乎難接受一些。但是如果你對(duì)多線程,同步,消息隊(duì)列這些東西很有經(jīng)驗(yàn)的話,對(duì)它的概念也會(huì)容易理解。

                 2.Go語(yǔ)言的面向?qū)ο?/span>

                 Go語(yǔ)言在C語(yǔ)言語(yǔ)法的基礎(chǔ)上,以最簡(jiǎn)潔的形式加入了面向?qū)ο蟆?br>    關(guān)于繼承:Go語(yǔ)言沒(méi)有繼承。但是它支持嵌入,這個(gè)有點(diǎn)類似于其它語(yǔ)言的mixin,可以用來(lái)模擬繼承。
                關(guān)于多態(tài):Go 語(yǔ)言的最大特點(diǎn)是它的接口定義。所謂“接口”,就是一組方法的集合。任何一個(gè)類只要實(shí)現(xiàn)了一個(gè)接口的所有方法,則是該接口的實(shí)現(xiàn)者,不需要顯式聲明實(shí)現(xiàn)該接口。所以一個(gè)沒(méi)有任何方法的空接口可以代表任何類型。
               
                 3.Go語(yǔ)言的并發(fā)

                 Go語(yǔ)言提出一個(gè)新的概念—Go例程,有點(diǎn)類似于線程,但是更加輕量,更省資源。Go例程之間的通信方式 ——信道,這是GO 語(yǔ)言的核心概念,有點(diǎn)類似于UNIX的Pipe。在Go語(yǔ)言中,不需要接觸線程,鎖這些低階概念。

                 4.Go語(yǔ)言可以用來(lái)做什么

                 Go語(yǔ)言目前最強(qiáng)的是它的網(wǎng)絡(luò)功能。它的package中已經(jīng)實(shí)現(xiàn)了最常見(jiàn)的網(wǎng)絡(luò)協(xié)議和編碼處理。Go的官方網(wǎng)站使用的就是Go語(yǔ)言,實(shí)際上它就是Go的文檔系統(tǒng)godoc。
                  還沒(méi)有官方對(duì)數(shù)據(jù)庫(kù)支持,不過(guò)因?yàn)橥ㄟ^(guò)某種辦法可以在Go語(yǔ)言中直接調(diào)用C函數(shù),所以很容易的實(shí)現(xiàn)對(duì)MYSQL 或者 Sqlite 這些數(shù)據(jù)庫(kù)的支持。
                  至于GUI,這估計(jì)目前還不在設(shè)計(jì)者的考慮范圍之內(nèi),因?yàn)樗麄冞BWindows都不舍得支持。不過(guò)可以通過(guò)它的http包和template包等等,已經(jīng)構(gòu)成了一個(gè)WEB框架,可以用來(lái)實(shí)現(xiàn)WEB GUI的開(kāi)發(fā),使用Go寫(xiě)一個(gè)帶有路徑分派的Http服務(wù)器也就幾行代碼的事。
                


            posted on 2010-01-11 19:48 eXile 閱讀(22045) 評(píng)論(39)  編輯 收藏 引用 所屬分類: 網(wǎng)絡(luò)開(kāi)發(fā)

            評(píng)論

            # re: 好玩的Go語(yǔ)言 2010-01-12 12:38 陳梓瀚(vczh)

            mixin可能造成的問(wèn)題有:子類指針不能轉(zhuǎn)成父類指針。如果真的不能,那繼承是沒(méi)意義的。  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-12 13:16 eXile

            是的,畢竟Go沒(méi)有繼承,沒(méi)有虛函數(shù),它沒(méi)有子類和父類的概念,所有的指針都視為不同的類型。但是,對(duì)于Go語(yǔ)言來(lái)說(shuō),接口不是指針,這是它和其它語(yǔ)言的不同。如果要多態(tài),就應(yīng)該使用接口,而不是具體的類。  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-12 15:50 陳梓瀚(vczh)

            @eXile
            這也會(huì)帶來(lái)問(wèn)題,譬如說(shuō)我有很多個(gè)同時(shí)針對(duì)IFooA和IFooB的實(shí)現(xiàn),其中大部分函數(shù)的實(shí)現(xiàn)相同,沒(méi)繼承你只好復(fù)制代碼了。  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-12 17:31 eXile

            @陳梓瀚(vczh)
            如果可能的話,把相同的代碼提取出來(lái),組成一個(gè)新類或新函數(shù),再組合進(jìn)去?;蛘撸褂靡粋€(gè)代理類。我覺(jué)得利用嵌入還是比較好解決這個(gè)問(wèn)題的。  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-12 18:04 eXile

            @陳梓瀚(vczh)
            面向?qū)ο蟮膬蓷l重要原則:1.面向接口編程,而不是面向?qū)崿F(xiàn)編程 2 優(yōu)先使用組合而不是繼承, 這在別的語(yǔ)言中只不過(guò)是口頭約定,而在Go語(yǔ)言中,你則不得不這樣做。  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-12 21:13 eXile

            關(guān)于為什么沒(méi)有繼承,官方FAQ是這么說(shuō)的:它簡(jiǎn)化了類之間的關(guān)系,不再有復(fù)雜的類型體系。接口的隱式風(fēng)格,使一個(gè)類型不需要提前聲明,就可以一次滿足多個(gè)接口,同時(shí)又沒(méi)有傳統(tǒng)的多重繼承的復(fù)雜性——“這種風(fēng)格需要一段時(shí)間來(lái)適應(yīng),但這是Go語(yǔ)言最令人激動(dòng)的事情之一”。  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-12 23:34 陳梓瀚(vczh)

            @eXile
            所以說(shuō),過(guò)分強(qiáng)調(diào)原則只會(huì)降低生產(chǎn)率。C++其實(shí)都能做,但是人們?cè)谶@種情況下會(huì)非常自覺(jué),然后再不得不例外的時(shí)候例外。不允許例外是不好的。  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-12 23:35 陳梓瀚(vczh)

            @eXile
            至于說(shuō)不需要提前聲明估計(jì)最根本的原因是為了簡(jiǎn)化編譯器的開(kāi)發(fā)吧。因?yàn)樵谠O(shè)計(jì)語(yǔ)言的時(shí)候我也會(huì)不自覺(jué)的傾向于這種設(shè)計(jì),不過(guò)最后我還是堅(jiān)持挑戰(zhàn)編譯器的開(kāi)發(fā)而不是添加約束。  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-12 23:39 陳梓瀚(vczh)

            @陳梓瀚(vczh)
            不過(guò)最近我傾向于pattern matching了……這根繼承不同。繼承具有縱向擴(kuò)展性,你可以添加新的實(shí)體,為已有的規(guī)則添加新內(nèi)容。Pattern matching則是橫向的,重點(diǎn)在于添加規(guī)則而不是添加新的實(shí)體。如果可以兩者結(jié)合起來(lái),那應(yīng)該是一件令人激動(dòng)人心的事情。

            當(dāng)然這還是一個(gè)方向問(wèn)題。現(xiàn)在CPU越來(lái)越快內(nèi)存越來(lái)越大,語(yǔ)言應(yīng)該傾向于更容易寫(xiě)。傾向于執(zhí)行起來(lái)快但是開(kāi)發(fā)效率不高的只能在極少的領(lǐng)域里面應(yīng)用。估計(jì)google不關(guān)心這個(gè)吧。  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-13 00:05 eXile

            @陳梓瀚(vczh)
            不需要提前聲明估計(jì)最根本的原因是為了簡(jiǎn)化編譯器的開(kāi)發(fā)吧?
            不是這么簡(jiǎn)單。這是Go語(yǔ)言與其它面向?qū)ο笳Z(yǔ)言的最大不同。舉個(gè)例子就明白了,

            type MyInterface interface { func doIt() } // 接口

            type A struct {}
            func (self *A) doIt() {} // 指針

            type B struct {}
            func (b B) doIt() {} //值

            type C struct { A } // 嵌入

            則A, B,C 都實(shí)現(xiàn)了MyInterface接口,也就都是MyInterface類型。沒(méi)有繼承,沒(méi)有顯式說(shuō)明,靜態(tài)綁定。Go把它稱之為“最令人激動(dòng)的事情之一” 不是沒(méi)有道理的。
              回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-13 00:09 eXile

            說(shuō)到開(kāi)發(fā)效率, 在服務(wù)器領(lǐng)域,Go絕對(duì)優(yōu)于Java,C++,就不用提了。  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-13 10:36 陳梓瀚(vczh)

            @eXile
            哦,這就是concept嘛。MyInterface會(huì)被自動(dòng)匹配進(jìn)A。但是我想,如果A的所有函數(shù)都分散在各個(gè)文件里面,他還不是得全部讀完了才能進(jìn)行這個(gè)分析。所以只是沒(méi)有向前聲明,取而代之是全文搜索。

            那我還有一個(gè)問(wèn)題,interface有沒(méi)有顯式繼承?(go語(yǔ)言的官方網(wǎng)站竟然被墻艸)  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-13 10:40 陳梓瀚(vczh)

            @eXile
            當(dāng)然說(shuō)絕對(duì)由于Java和C++什么的還是說(shuō)得太早啊,關(guān)鍵還要看這個(gè)語(yǔ)言是不適合用來(lái)寫(xiě)大量的庫(kù),還有其ABI是什么樣子的。當(dāng)然庫(kù)包含兩種

            1:代碼包含。程序越大編譯時(shí)間越長(zhǎng)。
            2:二進(jìn)制。這樣子如果我有兩個(gè)二進(jìn)制庫(kù),第一個(gè)有interface,第二個(gè)有恰好可以匹配進(jìn)去的類,那么就有問(wèn)題。

            當(dāng)然想來(lái)想去你說(shuō)mixin和自動(dòng)匹配interface同時(shí)存在的話,其實(shí)和多重繼承就是一回事,僅僅是少寫(xiě)了一點(diǎn)聲明父類的代碼而已。并不是什么激動(dòng)人心的新東西。C++的template早就是這個(gè)意思了。  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-13 11:27 eXile

            @陳梓瀚(vczh)
            1)編譯分析是根據(jù)包packege來(lái)進(jìn)行的,一個(gè)類的函數(shù)必須定義在一個(gè)包中,但可以在不同的文件中。
            2)interface有顯式繼承,當(dāng)然也是以嵌入的形式。我也想到了C++的concept,但是Go接口又具有動(dòng)態(tài)特性。
            3)Go具有和C一樣的ABI,一樣的類型,一樣的結(jié)構(gòu)布局,所以從Go調(diào)用C很容易,但是,因?yàn)橛蠫C,所以不支持從C調(diào)用Go。
            4)超快的編譯速度,無(wú)論是Go還是D語(yǔ)言,對(duì)c/c++的一個(gè)很大的不滿就是編譯太慢,當(dāng)然不會(huì)再出現(xiàn)這個(gè)問(wèn)題。庫(kù)是二進(jìn)制的。Go目前有兩套編譯器,其中一個(gè)編譯器gccgo的目標(biāo)是和gcc二進(jìn)制兼容。
            5)Go語(yǔ)言的庫(kù)都是用Go語(yǔ)言來(lái)寫(xiě)的,個(gè)人感覺(jué)很好讀,代碼量也少得多,每個(gè)庫(kù)也就是一兩個(gè)實(shí)現(xiàn)文件,是學(xué)習(xí)Go的最好途徑。  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-13 11:30 eXile

            吊詭的是,go語(yǔ)言的官方網(wǎng)站我在Windows下不能訪問(wèn),但在Linux下可正常訪問(wèn)  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-13 15:53 陳梓瀚(vczh)

            @eXile
            我明白了,一個(gè)真正徹底的方法是,你用接近動(dòng)態(tài)語(yǔ)言的語(yǔ)法來(lái)寫(xiě)程序,然后編譯器幫你推導(dǎo)出所有的interface結(jié)構(gòu)(你連interface都不用寫(xiě)了,而且你一旦真的寫(xiě)錯(cuò)了編譯器還會(huì)告訴你,多好),還有各個(gè)函數(shù)的類型。在vlpp的框架完成之后,我去實(shí)現(xiàn)它。  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-13 22:39 空明流轉(zhuǎn)

            @陳梓瀚(vczh)
            編譯時(shí)間怎么辦。。。。怎么辦。。。  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-14 02:05 陳梓瀚(vczh)

            @空明流轉(zhuǎn)
            我不信編譯時(shí)間能比程序員因?yàn)闆](méi)有語(yǔ)言這個(gè)功能而多花的寫(xiě)代碼的時(shí)間長(zhǎng)  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-14 09:50 bluegene

            個(gè)人感覺(jué)go語(yǔ)言目前的進(jìn)展不快啊,這么早就把它開(kāi)源,看來(lái)google不愿意投入太多的精力在上面啊  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-14 10:43 eXile

            @陳梓瀚(vczh)
            Go接口的實(shí)現(xiàn)可能是這樣的,假設(shè)函數(shù)定義的形參類型為Myinterface,而實(shí)際調(diào)用的實(shí)參類型為A,所編譯器會(huì)對(duì)A生成一個(gè)關(guān)于Myinterface的方法表,這樣,實(shí)參的值并不是一個(gè)簡(jiǎn)單的對(duì)象指針,而是對(duì)象指針再加上方法表的首地址。  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-14 10:49 eXile

            @bluegene
            這是想借助開(kāi)源社區(qū)的力量,比如現(xiàn)在已經(jīng)有人在做Windows 的移植,以及數(shù)據(jù)庫(kù)的客戶端,還有人在討論GUI的設(shè)計(jì)。對(duì)于老外來(lái)說(shuō),開(kāi)源只會(huì)太遲,不會(huì)太早。
              回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-14 12:20 陳梓瀚(vczh)

            @eXile
            可憐的google  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言[未登錄](méi) 2010-01-14 21:40 eXile

            @陳梓瀚(vczh)
            google不可憐,可憐的是網(wǎng)民。  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-15 01:21 linbc

            看來(lái),這是我理想中的語(yǔ)言,簡(jiǎn)單應(yīng)當(dāng)是美  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-01-15 14:56 陳梓瀚(vczh)

            @linbc
            簡(jiǎn)潔才是美  回復(fù)  更多評(píng)論   

            # 呵呵,我也喜歡Go語(yǔ)言 2010-01-19 09:25 lvscar

            我對(duì)這個(gè)語(yǔ)言也很感興趣, 現(xiàn)在開(kāi)始嘗試用它來(lái)寫(xiě)一些小東西. 如果得空歡迎和我交流 gtalk&email: lvscar <at> gmail.com  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-03-02 16:02 四不象

            duck typing , I like it  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-03-06 09:10 科杰

            我覺(jué)得只要是簡(jiǎn)單,并且跨平臺(tái)就算一門(mén)好的編程語(yǔ)言了
            科杰:www.kjhq.com  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-07-12 08:51 AngelitaVaughan

            It's understandable that cash can make people free. But how to act when one doesn't have money? The one way only is to receive the <a href="http://bestfinance-blog.com/topics/business-loans">business loans</a> and just collateral loan.   回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-07-27 05:48 buy essay

            If people want to see more facts about this good topic, they should purchase custom written essays or buy an essay with the help of research paper writing services.   回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2010-08-05 20:03 dissertation

            I state that high school students would be satisfied, if order thesis topic at thesis writing service. Furthermore, this can save free time.   回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2011-03-01 11:14 殷遠(yuǎn)超

            繼承是為了傳遞特性,并不一定要用虛函數(shù)分發(fā)。在C++模板編程里面也可以用得上。@陳梓瀚(vczh)
              回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2013-10-17 23:57 Internet site

            Our expert resume writers will be happy to provide professional CV writing services to potential employees who do not have time to write a resume. Consider ResumesExpert company "resumesexpert.com" and view CV templates. Now you have the necessary info where to buy resume paper, so do not doubt order resume and enjoy your career.  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2013-10-17 23:57 CustomEssays.co.uk rewiew

            Don’t know which firm to pick to receive help from? Look through QualityEssay testimonials, and come to a sound choice.  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2013-10-17 23:59 check here

            Have no clue which firm to select to obtain assistance from? Look over College-Paper testimonials "essaysreview.com", and come to a sound decision.  回復(fù)  更多評(píng)論   

            # re: 好玩的Go語(yǔ)言 2013-10-17 23:59 up here

            Our professional resume writers will provide help with resume writing to job seekers who do not have time to write a resume. View this ResumesExpert company resumesexpert.com and check resume writing samples. Now you have the necessary info where to buy resume paper, so do not hesitate buy resume and build your career.  回復(fù)  更多評(píng)論   

            導(dǎo)航

            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            統(tǒng)計(jì)

            常用鏈接

            留言簿(18)

            隨筆分類

            隨筆檔案

            服務(wù)器編程

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久人人爽人人爽人人片AV麻烦| 丰满少妇人妻久久久久久4| 久久国产乱子伦精品免费午夜| 激情久久久久久久久久| 无码八A片人妻少妇久久| 91麻精品国产91久久久久| 亚洲中文字幕无码一久久区| 久久有码中文字幕| 国产精品久久久久久久久鸭| 久久精品国产亚洲AV香蕉| 久久精品视频网| 青青草国产精品久久| 久久不见久久见免费视频7| 久久精品黄AA片一区二区三区| 久久香综合精品久久伊人| 人妻少妇精品久久| 偷偷做久久久久网站| 亚洲国产精品综合久久一线| 成人午夜精品久久久久久久小说| 久久国产精品77777| 国产国产成人精品久久| 久久国产福利免费| 美女久久久久久| 精品一二三区久久aaa片| 久久影院午夜理论片无码| 久久久久成人精品无码| 狠狠色婷婷久久综合频道日韩 | 99久久做夜夜爱天天做精品| 77777亚洲午夜久久多喷| 久久这里只精品国产99热| 久久人人爽人人爽人人片AV东京热| 久久99久久无码毛片一区二区| 久久亚洲sm情趣捆绑调教| 久久夜色精品国产噜噜亚洲AV| 久久人人爽人人精品视频| 久久久国产精品亚洲一区| 九九久久精品国产| 久久精品国产清自在天天线| 久久99国产精一区二区三区| 久久精品人人做人人爽电影| 亚洲七七久久精品中文国产|