原创 ubuntu下golang的安裝、編譯、運行

1 簡介最近兩年Golang發展迅猛,大有比肩C++、Java等主流語言、成爲未來十年最爲流行的編程語言之勢。在開源社區中,熱火朝天的Docker、Kubernetes、CoreOS生態圈都採用Golang開發,便是Golang大熱的最佳例

原创 github常用命令

一、安裝sudo yum install git二、常用步驟# 初始化git init  # 初始化git remote add repo_name url # 添加遠程倉庫git config --list  # 查看當前配git rem

原创 段錯誤Segment Fault定位,即core dump文件與gdb定位

    使用C++開發系統有時會出現段錯誤,即Segment Fault。此類錯誤程序直接崩潰,通常沒有任何有用信息輸出,很難定位bug,因而無從解決問題。今天我們介紹core dump文件,並使用gdb進行調試,以此來定位段錯誤問題。此文

原创 Golang vim開發環境設置

1 簡介    上一篇博客我們介紹了Golang的安裝、編譯、運行,本篇博客我們介紹如何設置面向Golang的vim開發環境。原生的vim無法自行識別golang關鍵字,開發環境如同編輯普通文本文件,無法高亮顯示,更不要說自動補全等功能。爲

原创 Golang的嵌入和繼承

    golang不支持繼承,只支持嵌入和聚合(匿名字段稱爲嵌入,具名字段稱爲聚合)。golang通過嵌入,可以到達類似繼承的效果,而且更爲簡潔。    一個例子type Base struct{     b int }   func (

原创 Golang閉包

1 形式含義    所謂閉包就是一個函數“捕獲”了和它在同一作用於的其他常量和變量。    從形式上看,在Golang中,所有的匿名函數都是閉包。閉包的創建方式和普通函數幾乎一致,只有一個關鍵區別:閉包沒有名字。    我們來看兩個例子ad

原创 Golang中的接口與鴨子類型

1 接口的定義與理解    接口是一個自定義類型,它是一組方法的集合。從定義上來看,接口有兩個特點。第一,接口本質是一種自定義類型,因此不要將golang中的接口簡單理解爲C++/Java中的接口,後者僅用於聲明方法簽名。第二,接口是一種特

原创 Golang泛型函數

    目前,golang還不支持模板函數(類型參數化),所以看上去不得不爲每一種類型都實現一個函數。但是Golang可以利用空接口interface{}和閉包/高階函數來實現泛型函數。1 空接口    空接口interface{}是指方法