Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 LRU 通常使用hash map + doubly linked list實現。在Golange中很簡單,使用List儲存資料,Map來做快速存取即可. 具體實現了下面幾個函數:func NewLRUCache(cap int)(*LRUCache)func (lru *LRUCache)Set(k,v interface{})(error)func (lru *LRUCache)Get(k interface{
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。擴充上一篇講了實現一個介面裡的全部方法。如果實現多個介面,也是很簡單的,同理把他的方法實現了就行。背景:有一個動物的介面,他有吃和跑的動作,突然來一隻鳥的動物,呀,它還會飛。如果我們修改介面動物加上飛的動作,這樣會讓狗也要飛了。所以,我們把介面的方法都單獨另出來。package mainimport ("fmt")//飛的介面type IFly interface {Fly()}//吃的介面type IEat
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。閑著沒事搞了小程式,在Window上面往linux機器上群發命令,寫的不好歡迎大家指正,還有就是用此工具發送惡意命令的人請離開,編譯了一份64_Window和linux的程式,供大家參考使用,Rm_tmp_cmd.exe 在win下面提供使用!我的目錄結構:flagparse --------flag.goGetconf --------getconfig.goMaste
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Golang運行cmd命令逐行即時輸出執行過程,注意,不是一次輸出所有的內容,而是按照執行的過程,逐行逐行的即時顯示出來代碼如下:package mainimport ("bufio""fmt""io""os/exec")func main() {command := "ls"params :=
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 跳錶(skiplist)在redis/levelDB中屬於核心資料結構,我簡單粗暴的用Golang實現了下。就我的簡單理解來說,就一個普通的鏈表,在insert時,通過Random_level(),把一層變成很多層,越上資料越小,跨度越大。 尋找時從上往下找,如果在一層沒找到,在下一層繼續時,以此節點作為起始,繼續尋找,是一種用空間換時間的方式。 測試代碼: package
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package structTest//struct//Date:2014-4-1 09:57:37import ("fmt""strings")func StructTest01Base() {//structTest0101()//structTest0102()structTest0103()}//定義一個structtype Student struct {id intname
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package main// 產生2, 3, 4, ... 到 channel 'ch'中.func Generate(ch chan<- int) {for i := 2; ; i++ {ch <- i// Send 'i' to channel 'ch'.}}// 從管道複製值 'in' 到 channel 'out',//
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ("archive/zip""fmt""io""os""path/filepath""strings")func main() {var (Path = os.Args[1]Name = os.Args[2])File, _ := os.Create(Name)PS :=
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。// occlient project main.gopackage mainimport ("crypto/md5""encoding/hex""flag""log""os""runtime""time")func MD5(b []byte) string {h := md5.New()h.Write(b)x :=
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ("net/http""io/ioutil""fmt"//"time")func main(){var website string = "http://www.future.org.cn"if resp,err := http.Get(website); err == nil{defer
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。把time包相關的函數用法過了下,基本包含大部份常見的用法了.並封裝了下日期顯示格式定製及time.Time數組排序的功能.以便以後調用.保留下測試所用例子: package main //author:xcl//2014-1-14import ("fmt""time" "github.com/xclpkg/utils" "sort")func
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Remember the picture generator you wrote earlier? Let's write another one, but this time it will return an implementation ofimage.Image instead of a slice of data.Define your own Image type, implement the
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ("fmt""io""log""net/http""net/http/httputil""net/url")func httpUserInfo(w http.ResponseWriter, r *http.Request) {ret := "your addr is:" +
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1 slice類型slice是一個參考型別,是一個動態指向數組切片的指標。slice是一個不定長的,總是指向底層的數組array的資料結構。src/pkg/runtime/runtime.hstruct!Slice{ // must not move anythingbyte* array;// actual datauint32 len; // number of elementsuint32 cap; //
Time of Update: 2015-06-17
這是一個建立於
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。主要目的是統計一篇文章中的出現詞語最多的個數,目前只是出個大概的架構,統計出來的結果只有兩種,一種是兩個字的一種是三個字的,而且準確率不高,需要最佳化的地方太多,先記下來,回頭閑了繼續最佳化一下,把準確率和處理速度提上來.菜鳥寫的不好,望大家多多指教.</pre><pre name="code" class="plain">package mainimport
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。一、slice的概念:Slices(切片)slice是概念上一個結構包含三個域:一個數組的指標、長度和容量。切片支援[]操作符來訪問底層數組的元素。內建的len函數返回的切片長度。內建的的cap函數返回切片的容量。切片是參考型別,這意味著如果你將一個切片賦值給另外一個切片,這兩個切片將引用同一個底層數組。二、如何建立slice建立切片可用以下兩種方法:(1)直接建立:s := make([]int, 10)建立了名為s 的,有10
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ( "fmt" "log" "os/exec" "encoding/json")func main() { cmd := exec.Command("echo", "-n", `{"Name": "Bob", "Age":
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。/** * Created by Administrator on 13-12-18. */package mainimport ("fmt""os")func f1(args ...interface {}) {f2(args...)f2(args[1:]...)}func f2(args ...interface {}) {for i, v := range args {fmt.Fprintf(
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。// 對於簡的map 例如 map[string] string 還是很好掌握的// 下面這個程式示範複雜的mappackage mainimport "fmt"type PersonInfo struct { ID string Name string Address string}func main() { personDB :=