Go 1.8rc3 原始碼學習:parser

這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。前言parser package 包含了 golang 文法分析相關的資料結構和方法,原始碼位於 <go-src>/src/go/parser之前大概看了點 PHP 和 Ruby 的原始碼,感歎 go 確實如宣傳的一樣,簡潔如 C,parser.go 代碼總共 幾千行(Ruby 文法規則定義檔案有 1w 多行),使用遞迴下降文法分析方法(感覺 go

使用Homebrew安裝配置golang環境

這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。安裝Homebrew在Homebrew複製安裝命令,在控制台運行完成安裝安裝golnag$ brew update && brew upgrade$ brew install goPATH配置建立一個目錄作為gopath,在目錄建立三個目錄bin、src、pkg$ cd ~$ vim .bash_profile編輯.bash_profile檔案並儲存,檔案內容如下export

Go 實現Linq的探索-2-延遲計算

這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。續上一篇的思路,解決延遲計算的問題。相關的keyword很容易想到yield。 在C#中的延遲計算介紹可以參考一些文章,例如 “不能不說的C#特性-迭代器(下) yield以及流的延遲計算” http://www.cnblogs.com/yuyijq/archive/2008/07/19/1246609.html 文章中提到 一、每次只返回一個元素的方法(閱讀者請跳到下文的第二部分)

Go彙編學習 2.解構AMD64 bytes.Equal

這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。上一篇學了記憶體結構基本知識,本文將學習符號(symbol)、語句的含義。我個人喜歡通過例子來學習,所以,我就從src/runtime/asm_amd64.s裡的bytes·Equal入手吧:)對應代碼TEXT bytes·Equal(SB),NOSPLIT,$0-49MOVQa_len+8(FP), BXMOVQb_len+32(FP), CXCMPQBX, CXJNEeqretMOVQa+0(FP),

Go彙編學習 1.進程記憶體位址與寄存器

這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。前言本文是我學習Go彙編的一些心得,網上關於Go的彙編資料實在是太少了,本人電腦不是科班,所以可能會有錯誤。進程記憶體位址空間作業系統執行程式時,會把程式的二進位部分載入進記憶體,同時分配一定的記憶體空間。如所示TEXT/Code segmentTEXT segment,或者叫Code segment,儲存了程式的指令。只能執行固定長度Data segmentData segment

Go語言小貼士1 - io包

這是一個建立於

懶人通訊協議代碼產生器fastbin

這是一個建立於

記憶體資料庫的事務怎麼做

這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。上周我在Gopher

Go語言黑魔法

這是一個建立於

散落在link包中的一些細節

這是一個建立於

Go 開發 HTTP 的另一個選擇 fasthttp

這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。fasthttp 是 Go 的一款不同於標準庫 net/http 的 HTTP 實現。fasthttp 的效能可以達到標準庫的 10 倍,說明他魔性的實現方式。主要的點在於四個方面:net/http 的實現是一個串連建立一個 goroutine;fasthttp 是利用一個 worker 複用 goroutine,減輕 runtime 調度 goroutine 的壓力net/http 解析的請求資料很多放在 map[string]

Golang CSP並行存取模型

這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。今天介紹一下 go語言的並發機制以及它所使用的CSP並行存取模型CSP並行存取模型CSP模型是上個世紀七十年代提出的,用於描述兩個獨立的並發實體通過共用的通訊 channel(管道)進行通訊的並行存取模型。 CSP中channel是第一類對象,它不關注發送訊息的實體,而關注與發送訊息時使用的channel。Golang CSPGolang

3種優雅的Go channel用法

這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。寫Go的人應該都聽過Rob Pike的這句話Do not communicate by sharing memory; instead, share memory

Golang與樹莓派

這是一個建立於

一些Golang小技巧

這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。今天給大家介紹3個我覺得比較有啟發的Golang小技巧,分別是以下幾個程式碼片段nsq裡的select寫檔案和socketio模組裡的sendfilefasthttp裡對header的處理nsq裡的select讀在nsq中,需要讀取之前磁碟上的,或者是從記憶體中直接讀取,一般人都是先判斷記憶體中有沒有資料,然而,nsq另闢蹊徑使用了select語句,把CSP模式用到了極致。源檔案連結:channel.go

如何讓Go程式更快

這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。本文為部分翻譯、整理。 原文為Go的開發人員之一的Dave Cheney所做的 Five things that make gofast清晰賦實值型別例如,有一個絕對不會超過uint32的數值,就不要用int var gocon uint32 = 2015 這樣gocon這個值只會佔用4個位元組為啥呢? 因為如,CPU的處理速度已經遠超記憶體的匯流排速度了

如何一下午寫3000行?記某雲的Golang API SDK生產過程

這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。近日參加了某雲的SDK編寫比賽,官方給的範例是個Python版,請求直接用**params這樣方法構造請求體因為尼瑪Golang是靜態語言,我們嚴謹!沒有可變參數!還沒有預設值!!所以我苦逼地寫了一個多小時類似這樣的代碼:func (c *Client) GetHostInstance(id string, option string, count int) {//

如何用ZeroMQ實現UDP組播Pub-Sub(基於Golang)

這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。ZeroMQ有一對Pub/Sub socket 類型,但是網上的教程一般側重於使用TCP版本的……雖然TCP版本的也能組網,但是略顯麻煩,今天我來給大家介紹一下基於PGM協議的ZeroMQ Pub/Sub模型 首先要編譯安裝OpenPGM brewinstall libpgm 接著是zmq brew install zmq --with-pgm 這樣就準備好了環境了,這裡需要瞭解一下PGM網路的原理,很簡單,如 綠色的就是發送方,

Go語言小貼士3 - bufio包

這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。之前我們介紹了io包和協議解析,這次我們要來講講bufio包,這個包實現了在項目中很常用到的帶緩衝的IO。先從我們前一個小貼士中的分包代碼講起,重新貼一下這段代碼:func ReadPacket(conn net.Conn) ([]byte, error) { var head [2]byte if _, err := io.ReadFull(conn, head[:]); err != nil {

Go語言小貼士2 - 協議解析

這是一個建立於

總頁數: 1023 1 .... 460 461 462 463 464 .... 1023 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.