這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
一般大家都是看看http://golang.org/的文章就算罷了,但真正的coder要在實踐編碼中找到自信。
所以區區下載了https://github.com/andrebq/goscript上的goscript,並通過修正,使之
實現正確的參數傳遞,並且不用那噁心的comment實現,省得每次編輯器都提示檔案被修改。
關鍵的實現是個叫isource()的函數,用以替代goscript原有的comment():
func isource(dst , src string) { file1, err := os.Open(src, os.O_RDONLY, 0) if err != nil { error(fmt.Sprintf("Can't open %s", src)) } defer file1.Close() os.Remove(dst) file2, err := os.Open(dst, os.O_WRONLY | os.O_CREAT, 0644) if err != nil { error(fmt.Sprintf("Can't open %s", flag.Args()[1])) } defer file2.Close() bufFile1 := bufio.NewReader(file1) bufFile2 := bufio.NewWriter(file2) defer bufFile2.Flush() head, _ := bufFile1.ReadString('/n') if len(head) >= 2 && head[0:2] != "#!" { //error("First Line: " + head) bufFile2.WriteString(head + "/n") } io.Copy(bufFile2, bufFile1)}
進一步的,我發現golang首頁上的tag產生工具沒一個可以實現在最近版的go上編譯,無奈再次使用強大的ctags regex文法:
#!/bin/shctags --exclude=*_test.go --langdef=go --langmap=go:.go --regex-go="/^func //([^)]+//)/s+(/w+)//1/i" --regex-go="/^func/s+(/w+)//1/i" -Re $*
go和emacs是區區在42區的標籤之一。
歡迎一起交流。