青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

戰魂小筑

討論群:309800774 知乎關注:http://zhihu.com/people/sunicdavy 開源項目:https://github.com/davyxu

   :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  257 隨筆 :: 0 文章 :: 506 評論 :: 0 Trackbacks

append, map, len不是關鍵字

他們其實還是類庫功能, 都在buildin包里的, 系統默認給你做了個

  1. import(
  2. . "buildin"
  3. )

將buildin的包內容都映射到全局而已, 其實你也可以用自己的包這么做

打印的另一種寫法

想跟腳本一樣調試打印數據么?

  1. println("hello world")

無需包含任何包, 因為它在buildin包里

iota不是黑科技

這是在buildin包里的定義

  1. // iota is a predeclared identifier representing the untyped integer ordinal
  2. // number of the current const specification in a (usually parenthesized)
  3. // const declaration. It is zero-indexed.
  4. const iota = 0 // Untyped int.

其實go是有泛型概念的

想想map和數組的定義 
只是泛型沒有開放給用戶用而已(只許XX放火,不許XX點燈)

map是支持多個key的, 而且很方便

還在為多個key轉id的復雜算法而頭疼么?

  1. type myKey struct{
  2. number int
  3. str string
  4. }
  5. func main(){
  6. t := map[ myKey] int {
  7. myKey{ 2, "world"}: 1,
  8. }
  9. fmt.Println(t[myKey{2, "world"}])
  10. }
  11. 輸出: 1

枚舉是可以轉成string的

默認定義一個枚舉

  1. type MyConst int
  2. const (
  3. MyConst_A MyConst = iota
  4. MyConst_B MyConst = iota
  5. )
  6. func main(){
  7. fmt.Println(MyConst_A)
  8. }

輸出: 0 
如果我們想自動化輸出MyConst_A字符串時 
就需要使用golang的一個工具鏈:golang.org/x/tools/cmd/stringer 
將其下載, 編譯成可執行工具后, 對代碼進行生成 
生成的代碼會多出一個xx_string.go 
里面就是枚舉的String()string 函數

臨時轉換一個接口并調用的方法

  1. type love struct{
  2. }
  3. func (self*love)foo(){
  4. fmt.Println("love")
  5. }
  6. func main(){
  7. var chaos interface{} = new(love)
  8. chaos.(interface{
  9. foo()
  10. }).foo()
  11. }

Golang的receiver實際上就是this的變種實現

  1. func( self*MyStruct) foo( p int ){
  2. }

寫不慣receiver的寫法? 如果這樣改下呢?

  1. func foo( self *MyStruct, p int ){
  2. }

所以為什么說Golang還是一個C語言嘛

關于內存分配…

  • new 傳入Type類型, 返回*Type類型
  • make 可以在分配數組時設置預分配大小, new不可以
  • make 能分配數組,map, 但不能分配結構體和原始類型
  • new 能分配數組, map, 結構體和原始類型等的所有類型
  • &Type等效于new
  • 切片不需要分配內存(make,new), 直接聲明就可以了…

Golang的反射無法通過一個類型名, 創建其實例

C#有Assembly概念, 可以在一個Assembly里搜索, 創建實例

Golang是靜態類型語言, 如果需要, 只能注冊你需要創建的結構體, 然后將注冊好的map用于創建

Golang可以替換Python來進行復雜的工具流程處理

如果你需要跨平臺的工具流程處理, 對Python不熟悉, 可以使用

  1. go run yourcode.go 參數1 參數2

方式來進行工具處理 
覺得慢, 可以編譯成可執行文件

這樣做的好處: 如果有些類庫本身就是go寫的, Python想使用是很麻煩的, 而Golang來寫則輕而易舉

例子: 通過go的protobuf庫, 對一些文件進行處理

Golang可以自動持有方法的接收者實例

  1. type myType struct{
  2. }
  3. func (self*myType) foo( p int){
  4. fmt.Println("hello", p )
  5. }
  6. func main(){
  7. var callback func( int )
  8. ins := new(myType)
  9. callback = ins.foo
  10. callback( 100 )
  11. }

做過lua的C++代碼綁定的童鞋都清楚: lua只支持外部靜態或者全局函數調用 
如果要進行C++類成員函數調用時, 要自己處理this和成員函數 
這種技巧因為早起編譯器的虛表不同平臺實現細節不統一需要專門處理 
后面跨平臺虛表統一后, 類成員函數的調用寫法也是很惡心復雜的 
但是Golang的小白式用法, 直接吊打C++, 甚至C#復雜的delegate

LiteIDE篇: 多開秘籍

  • 找到 菜單->查看->選項->通用->存儲->存儲設置到本地ini文件

  • 關閉LiteIDE

  • 復制LiteIDE整個目錄, 命名文件夾為你的工程名

  • 每個工程所在的LiteIDE的配置將是獨立的, 不會互相干擾

LiteIDE篇: 測試程序也是可以調試的

別以為程序一定要是main開始的才可以調試

Golang的測試程序雖然都是一個個Test開頭的函數,但執行go test時, 還是有main入口

在LiteIDE中, 可以在 調試->開始調試測試程序里進行測試程序調試

LiteIDE篇: 在Windows上可以輸出linux可執行文件

go的工具鏈默認支持交叉編譯 
在LiteIDE中, 可以通過切換輸出平臺, 輸出不同平臺的可執行文件

posted on 2016-11-02 11:09 戰魂小筑 閱讀(23455) 評論(1)  編輯 收藏 引用 所屬分類: 工具使用及設計Golang

評論

# re: Go語言的冷知識 2016-11-22 16:10 思月行云
很實用,點贊 ^ ^  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美激情一区二区三级高清视频 | 国产精品一区二区在线观看不卡| 亚洲国产99| 美国成人直播| 免费亚洲视频| 一区二区欧美日韩| 一区二区三区你懂的| 国产精品乱码| 久久久久久夜| 久久综合99re88久久爱| 亚洲国产日韩一区二区| 亚洲精品资源| 国产精品a久久久久| 亚洲欧美日韩另类精品一区二区三区| 亚洲视频1区2区| 国产偷国产偷亚洲高清97cao| 久久久免费精品视频| 久久免费的精品国产v∧| 亚洲黄色一区二区三区| 日韩亚洲精品在线| 国产精品久久久久91| 欧美综合77777色婷婷| 久久久久国产一区二区三区| 亚洲国产影院| 亚洲美女视频网| 国产欧美日韩伦理| 亚洲国产毛片完整版| 国产精品第十页| 久久青草福利网站| 欧美日韩视频在线| 噜噜噜躁狠狠躁狠狠精品视频 | 亚洲午夜一区二区三区| 国产尤物精品| 99精品热6080yy久久| 极品av少妇一区二区| 99精品免费| 亚洲国产高清视频| 亚洲专区在线| 日韩亚洲精品电影| 久久久国产亚洲精品| 亚洲一区二区三区中文字幕在线| 久久久精品国产免大香伊| 亚洲一区二区视频| 久久一区激情| 久久精品九九| 欧美日韩在线一区| 欧美激情视频免费观看| 国产一区二区黄| 一区二区久久久久久| 亚洲国产毛片完整版| 91久久精品国产91久久性色tv| 国产一区二区三区的电影 | 欧美丰满高潮xxxx喷水动漫| 国产精品久久久久久久免费软件| 欧美成人精品在线| 黑人中文字幕一区二区三区| 亚洲一区二区三区在线观看视频| 亚洲毛片av在线| 蜜桃伊人久久| 美女福利精品视频| 国产一区深夜福利| 性8sex亚洲区入口| 欧美中文在线观看国产| 国产精品v亚洲精品v日韩精品| 亚洲激情视频网| 日韩视频永久免费| 欧美久久电影| 亚洲精品视频免费| 宅男噜噜噜66国产日韩在线观看| 欧美寡妇偷汉性猛交| 亚洲国产欧美一区二区三区久久| 亚洲国产视频直播| 欧美成人r级一区二区三区| 免费看亚洲片| 亚洲激情一区二区三区| 欧美va天堂va视频va在线| 欧美激情第六页| 亚洲看片免费| 欧美日韩国产精品专区| 日韩一二三区视频| 亚洲一区在线直播| 国产日韩欧美亚洲一区| 久久精品国产亚洲一区二区| 欧美成人午夜免费视在线看片| 在线精品一区| 欧美紧缚bdsm在线视频| 一本大道久久a久久精二百| 午夜精品久久久久久久久久久久| 国产精品一二一区| 欧美在线观看一区| 亚洲第一页自拍| 亚洲视频www| 国产亚洲成年网址在线观看| 久久久精品五月天| 亚洲国产精品成人精品| 亚洲——在线| 国产中文一区二区| 欧美激情一区在线观看| 亚洲伊人色欲综合网| 久久久久免费视频| 99精品视频一区二区三区| 欧美色视频日本高清在线观看| 亚洲欧美中文在线视频| 欧美黄色精品| 亚洲欧美中日韩| 国精产品99永久一区一区| 欧美大秀在线观看| 亚洲性图久久| 亚洲国产99精品国自产| 性高湖久久久久久久久| 91久久国产综合久久91精品网站| 欧美日韩国产a| 久久爱www| 一本色道久久综合狠狠躁篇的优点| 久久精品日韩欧美| 亚洲视频中文| 亚洲国产三级| 国产一区二区日韩精品| 欧美无砖砖区免费| 欧美国产乱视频| 欧美一区二区三区在线| 99精品视频免费在线观看| 免费国产一区二区| 欧美一区高清| 亚洲图色在线| 日韩亚洲欧美在线观看| 伊人成人开心激情综合网| 国产精品久久久久久久免费软件| 欧美成人a视频| 久久婷婷国产麻豆91天堂| 午夜精品婷婷| 亚洲一区二区精品视频| aa成人免费视频| 欧美国产极速在线| 老司机免费视频久久| 久久精品欧美日韩| 欧美一区2区三区4区公司二百| 一区二区日韩伦理片| 亚洲精品视频在线播放| 亚洲国产欧洲综合997久久| 伊人成人开心激情综合网| 国产亚洲a∨片在线观看| 国产精品视频1区| 国产精品视频免费| 国产精品草草| 国产精品二区影院| 欧美午夜理伦三级在线观看| 欧美日韩一本到| 欧美日韩精品二区第二页| 欧美精品成人一区二区在线观看| 欧美一区二区视频在线| 香蕉久久一区二区不卡无毒影院 | 欧美成人高清视频| 久久综合久色欧美综合狠狠| 久久久久久久久久码影片| 久久久久久久久伊人| 久久久久国产精品一区| 久久伊人精品天天| 欧美成人精品不卡视频在线观看 | 亚洲视频专区在线| 亚洲欧美日韩专区| 欧美一级在线视频| 久久亚洲影音av资源网| 欧美成人dvd在线视频| 欧美99在线视频观看| 亚洲电影第1页| 9i看片成人免费高清| 亚洲欧美日韩在线不卡| 久久一区二区三区四区| 欧美高清在线精品一区| 欧美午夜电影完整版| 国产欧美日韩亚洲一区二区三区| 黑人极品videos精品欧美裸| 亚洲欧洲在线免费| 亚洲欧美日韩视频二区| 免费在线观看日韩欧美| 亚洲日本中文字幕免费在线不卡| 99日韩精品| 久久久久欧美精品| 欧美视频福利| 在线播放中文字幕一区| 中文国产成人精品久久一| 久久大逼视频| 亚洲日本乱码在线观看| 亚洲调教视频在线观看| 久久嫩草精品久久久精品| 欧美日韩在线综合| 伊大人香蕉综合8在线视| 亚洲一区二区精品视频| 免费观看一级特黄欧美大片| aaa亚洲精品一二三区| 久久影音先锋| 国产精品一区二区在线观看网站| 在线欧美视频| 欧美一区二区高清在线观看| 亚洲国产欧美另类丝袜| 久久九九久精品国产免费直播 | 欧美中文在线视频| 欧美精品精品一区| 狠狠色狠狠色综合人人|