go語言基礎學習二

來源:互聯網
上載者:User

上周開始學習go語言,到不是感覺很難,也許從一種語言直接過渡到另外一種語言確實是需要時間的。在dos下敲了一天半的代碼,實在是煩透了,單調枯燥,也沒有提示如果有錯誤要一行行看,也許是使用視覺化檢視習慣了,在黑視窗裡工作總是感覺非常不爽。在老大給我們的協助資料中,我翻啊翻,終於找到了貌似是一種可視話的工具liteIDE.按照找到的資料,將其配置好,再用來寫程式,真是愜意好多呀,而且有智能提示,彷彿寫程式快樂了很多。

http://download.csdn.net/detail/lxy15329/4735111 這文檔是我無意中發現的,讓我重新找到了編程的樂趣。

      言歸正傳,說下今天的收穫吧。

     今天又把電子書從頭讀了一遍,當然沒有讀到尾,讓我一天只幹一件事情是比較困難的,因為我害怕枯燥,激情耗盡便再也不想幹了。電紙書已經讀了一大半了,剩下的部分是go的精髓。基礎差不多了吧,大多數語言的套路都是如此,只需要熟悉下一些不同之處而且過人之處便算是掌握了基礎了。

    首先是關於字串。

   對於多行字串的書寫。eg:

str := "hello"         + "world"

這樣是有問題的,因為go會將其解析為:

str := "hello";

     +"world";

這顯然是不對的。要不說嘛,go自動給加分號,說到底是按照一套程式來完成的,人只能去遵循這套程式,而不能按照自己的想法來指揮程式完成。有兩種辦法可以解決,一種是按照這種方式:

str := "hello"+

           "world"

或者是使用反引號`

即  str :=`hello

                     world`

但是這樣寫會將分行符號和各種空格包含進來。

  格式化輸出:今天真是囧大了,因為寫了一上午程式,自己還納悶呢,怎麼go中%c直接顯示出來了,而不是顯示字元呢。由於是在liteIDE中開發,好多都是有提示的,所以,自己也沒注意,一直使用的是printf還是println。一直到下午看文檔,才明白,原來上次因為是在dos下執行,所以使用的是printf,格式化輸出,而今天,輸入fmt之後就直接按斷行符號了,只知道是輸出,但是具體調用的是哪個函數確實是沒放在心上。想想真是的,還好沒有一直去思考這個問題,要不然,恨不得踹自己兩腳。

   關於map的使用,到現在我還存在疑惑,因為有一個語句沒執行成功,這個待到以後繼續解決。

上例子:

   week := map[string] int{

 "monday":1,"tuesday":2,"wednesday",3,

}

注意,最後的逗號是必須的,是萬萬不能缺失的。

可能你只想要這個map種的值,而不需要鍵。可以這樣:

for  _,days :=range week{

//do something

}

_得到值之後就將其捨棄了,正好達到用途。

如果想往map中添加項,很簡單,week["thursday"]=4

若要修改,只需要直接賦值就可以了 week["thursday"]=0

若要判斷元素是否存在

v,ok := week["thursday"],若存在,則ok的值為true,否則為false

在map中當然也能刪除元素,delete(week,"thursday")就可以了

關於函數和自訂的類型。這個其實也不難,只是有些地方需要多加註意。自己添加的包中有函數,如果函數名字是大寫字母開頭,則是可以匯出的,在其他包中可以調用,如果是小寫字母,只能在內部調用。這個總感覺很不適應,幹嘛弄這麼麻煩啊,而且經常寫著寫著就忘了,怎麼記得住什麼情況啊。上午折騰了大半天,才恍然大悟。同樣,關於自己定義的type,也是跟大小寫有關係的。

 type Student struct{

  name  string

  age int

}

使用時候可以採用兩種方式:

一:stu :=new (Student)

      stu.name="lxy"

     stu.age=11

二。stu :=new Student{"lxy",13}  //注意,是大括弧,開始老是使用圓括弧,坑苦我了呀

值得一提的是,go中的函數的傳回值可以不止一個,這是個值得稱道的地方,寫法很簡單,我就不舉例子了。

明天繼續學習go語言比較深入的東西,比如並發

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.