Time of Update: 2016-08-12
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 上一篇文章講了go與C基本類型轉換(http://blog.csdn.net/freeape/article/details/51885308),但是在實際項目中用到的不僅僅是基本類型之間的轉換,更多的是函數封裝中的值傳遞和指標傳遞,如何在C功能函數中和Go中進行各種值和指標傳遞呢?根本方法還是利用基本類型,包括特別常用unsafe.Pointer 先看一個例子:package main/*#include
Time of Update: 2016-08-12
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。結構體的定義很簡單:type Vertex struct { X, Y float64}可以理解為多個變數的集合。結構體的使用:1、直接使用:v := Vertex{1, 2}或var v = Vertex{1, 2}2、通過new關鍵字:v := new(Vertex)3、通過指標訪問:v := &Vertex{1, 2} 為結構體添加方法:package mainimport ( "fmt"
Time of Update: 2016-08-12
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。select裡面的break是無法退出for語句的。如下; package mainimport ( "fmt")func main() { var c=make(chan int,1024) quit:=make(chan string,1) c 有幾種方法可以退出for迴圈 1使用goto語句: package mainimport ( "fmt")func main() { var
Time of Update: 2016-08-12
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。看介紹說,go的select與switch類似。但其實有很大不同 switch執行是順序的,而select是隨機播放: package mainimport ( "fmt")func main() { c1:=make(chan int,1024) c2:=make(chan int,1024) for i:=0;i 結果: i=== 0from c1i=== 1from c2i=== 2from c1i=== 3
Time of Update: 2016-08-11
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go 結構體go 結構體定義賦值Factory 方法Go 通過結構體的形式支援使用者自訂類型。結構體是複合類型(composite types),當需要定義一個類型,它由一系列屬性群組成,每個屬性都有自己的類型和值的時候,就應該使用結構體,它把資料聚集在一起。然後可以訪問這些資料,就好像它是一個獨立實體的一部分。定義結構體定義的一般方式如下:type Identifier struct { field1 type1
Time of Update: 2016-08-11
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 確切的說,Go語言也提供了繼承,但是採用了組合的文法,所以我們將其稱為匿名組合:type Base struct { Name string}func (base *Base) Foo() {...}func (base *Base) Bar() {...}type Foo struct { Base ...}func (foo *Foo) Bar() { foo.Base.Bar() ...}
Time of Update: 2016-08-11
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。最簡單的方法是用json unmarshal,變成字串,然後再用 json marshal產生新的map。這種方法對結構體也適用。如果是map[string]interface{}和[]interface{}的組合,用代碼遞迴也很簡單:func DeepCopy(value interface{}) interface{} {if valueMap, ok := value.(map[string]interface{});
Time of Update: 2016-08-11
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。第一步:Go環境和配置1、安裝 Go 開發環境(省略),假設Go安裝目錄為 C:\Go2、配置環境變數,下面兩個環境變臉沒有就加上。 資料參考:http://studygolang.com/articles/4454 (請務必參考,組態變數他說得比較詳細)說明:GOPATH為工作目錄,可以有多個。具體說明,見參考網址
Time of Update: 2016-08-11
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go基礎資料型別 (Elementary Data Type)1.bool,一個位元組,值是true或者false,不可以用0或者1表示(java中boolean佔用4個位元組,而boolean作為數組出現時,每個boolean佔用1個位元組)2.int/uint(帶符號為與不帶符號位的int類型):根據平台不同是32位或者64位3.intx/uintx:x代表任意位元,例如:int3,代表佔3bit的int類型4.byte佔用8
Time of Update: 2016-08-11
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 最近在做一個golang的串連池。測試過程中發現一個有趣的現象,擷取的串連沒有歸還給串連池,那麼過一段時間後該串連會自動關閉掉。猜測這跟串連池應該是沒有關係的,於是再用普通的串連做了實驗,即dial一個tcp串連,發送請求,然後程式進入sleep,一段時間後該串連還是會自動關閉。 對這個過程進行抓包分析,發現主動關閉串連的是client端,即client端主動向服務端發送了FIN包。
Time of Update: 2016-08-11
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 在使用Golang做Web開發時,有時候渲染出來的模板在前台顯示時會出現一些奇怪的空白換行,具體特徵就是查看css樣式表並沒有相關定義的空白部分。分析: 查看出現問題頁面的網頁原始碼,複製空白換行部分轉碼為Unicode編碼,發現其中包含了\u2028這樣的字元【圖一】。 【圖一】 另外,直接在瀏覽器檢查裡邊的html選擇Edit as html,也可發現在空白處存在小紅點,滑鼠移上會直接顯示該字元是\u2028【
Time of Update: 2016-08-12
標籤:原文:http://dev.gameres.com/Program/Control/IOCP.htm另附上:http://stackoverflow.com/questions/5283032/i-o-completion-ports-advantages-and-disadvantages 歡迎閱讀此篇IOCP教程。我將先給出IOCP的定義然後給出它的實現方法,最後剖析一個Echo程式來為您撥開IOCP的謎雲,除去你心中對IOCP的煩惱。OK,但我不能保證你明白IOCP的一切,
Time of Update: 2016-08-12
標籤:最近研究個新玩意,叫window.AudioContext;不懂?沒關係,我也是才接觸,這完全可以說個全新領域,這玩意幹啥的?顧名思義,媒體上下文,也就是你媒體的資料分析,就是一串資料啊?那有啥用呢?對,單純的資料毫無意義,但是如果把資料結合canvas,就會產生神奇的效果(比如百度的echart),這裡的AudioContext結合canvas就能產生一個音樂可視化的效果,就是那種手機MP3播放器的效果,又叫音樂可視化;首先原理:前端擷取到buffer資料,然後運用解析對象,把資料解析,
Time of Update: 2016-08-12
標籤:結構體的定義很簡單:type Vertex struct { X, Y float64}可以理解為多個變數的集合。結構體的使用:1、直接使用:v := Vertex{1, 2}或var v = Vertex{1, 2}2、通過new關鍵字:v := new(Vertex)3、通過指標訪問:v := &Vertex{1, 2} 為結構體添加方法:package mainimport ( "fmt" "math")type Vertex struct {
Time of Update: 2016-08-12
標籤:本文轉載自:http://www.cnblogs.com/felixfang/p/3420462.html1. 物理地址和邏輯地址物理地址:載入到記憶體位址寄存器中的地址,記憶體單元的真正地址。在前端匯流排上傳輸的記憶體位址都是實體記憶體地址,編號從0開始一直到可用實體記憶體的最高端。這些數字被北橋(Nortbridge chip)映射到實際的記憶體條上。物理地址是明確的、最終用在匯流排上的編號,不必轉換,不必分頁,也沒有特權級檢查(no translation, no paging,
Time of Update: 2016-08-11
標籤:目前項目組在開發一個項目,由多個子模組構成,構建工具是maven,版本控制工具是svn。本文想對如何結合使用maven和svn提出一點初步的想法 一、只有svn的情況 首先考慮沒有maven的情況。這樣的話,項目組每個開發人員,都需要在本地check
Time of Update: 2016-08-11
標籤:在學習Linux驅動的過程中,遇到一個宏叫做container_of。該宏定義在include/linux/kernel.h中,首先來貼出它的代碼:/** * container_of - cast a member of a structure out to the containing structure * @ptr: the pointer to the
Time of Update: 2016-08-11
標籤:1. 起因:想下載 uboot 源碼,原先的方法都是下載壓縮包,然後放到虛擬機器上的 Ubuntu ,再解壓。 在看 uboot 源碼的時候,發現 v2016.01 版本的uboot中關於 board_init_f_mem 函數有問題,想要查看其它版本的相關內容,就犯愁了,我想到了 uboot 是用 git 管理的,那如果我 clone 一下,不是能在不同的版本間輕鬆切換,甚至能看到,每個版本的更新資訊。想法是好的,那我們就動起來。2. 操作步驟:1. clone
Time of Update: 2016-08-11
標籤:http://blog.sina.com.cn/s/blog_72c2eb350100y2sa.html有人提及想更換安裝介面的圖片,其實方法很簡單,只需要修改inno setup安裝目錄下的WizModernImage.bmp和WizModernSmallImage.bmp兩張圖片就可以了。只需在字碼頁,添加如下代碼,即可實現頁面的最佳化。 #define MyAppName "服務端"#define MyAppVersion
Time of Update: 2016-08-11
標籤:一.Gesture RecognizersGesture Recognizers是在iOS3.2引入的,可以用來識別手勢、簡化定製視圖事件處理的對象。Gesture