原创 go 併發 —— 摘自go語言學習筆記

只須在函數調用前添加go關鍵字即可創建併發任務 關鍵字go並非執行併發操作,而是創建一個併發任務單元。新建任務被放置在系統隊列中,等待調度器安排合適系統線程去獲取執行權。當前流程不會阻塞,不會等待該任務啓動,且運行時也不保證併發

原创 go 類型 —— 摘自go語言學習筆記

從計算機實現角度來看,變量是一段或多段用來存儲數據的內存 go變量總是有固定的數據類型,類型決定了變量內存的長度和存儲格式;通過類型轉換或指針操作,我們可用不同方式修改變量值,但這並不意味着改變了變量類型;因爲內存分配發生在運行

原创 go 函數 —— 摘自go語言學習筆記

函數是代碼複用和測試的基本單元 函數屬於第一類對象,具備相同簽名(參數及返回值列表)的視作同一類型;第一類對象指可在運行期創建,可用作函數參數或返回值,可存入變量的實體。最常見的用法就是匿名函數 函數只能判斷其是否爲nil,不支

原创 go 方法 —— 摘自go語言學習筆記

如何選擇方法的receiver類型:要修改實例狀態,用 *T;無須修改狀態的小對象或固定值,建議用T;大對象建議用 *T,以減少複製成本;引用類型、字符串、函數等指針包裝對象,直接用T;若包含Mutex等同步字段,用 *T,避免

原创 go 接口 —— 摘自go語言學習筆記

編譯器根據方法集來判斷是否實現了接口 嵌入其他接口類型,相當於將其聲明的方法集導入。這就要求不能有同名方法,因爲不支持重載。還有,不能嵌入自身或循環嵌入,那會導致遞歸錯誤 將對象賦值給接口變量時,會複製該對象。我們甚至無法修改接

原创 go 表達式 —— 摘自go語言學習筆記

位移右操作數必須是無符號整數,或可以轉換的無顯式類型常量func main() { b := 23 //b是有符號int類型變量 x := 1 << b //無效操作,1 << b (shift

原创 go 數據 —— 摘自go語言學習筆記

一. 字符串 使用``定義不做轉義處理的原始字符串,支持跨行,編譯器不會解析原始字符串內的註釋語句,且前置縮進空格也屬字符串內容s:= `line\r\n, line 2` 允許以索引號訪問字節數組,但不能獲取元素地址s:"

原创 Effective C++筆記 —— 第五章

轉型 1.1 const_cast 通常被用來將對象的常量性轉除,它也是唯一具有此能力的C++轉型操作符 1.2 dynamic_cast 主要用來執行“安全向下轉型”(父類轉爲子類),也就是用來決定某對象是否歸屬繼承體系中的某

原创 深度探索C++對象模型筆記 —— 第五章

inline和define 內聯函數在編譯時展開,而宏是由預處理器對宏進行展開 內聯函數會檢查參數類型,宏定義不檢查函數參數 ,所以內聯函數更安全。 宏不是函數,而inline函數是函數 宏在定義時要小心處理宏參數,可能出現二

原创 深度探索C++對象模型筆記 —— 第三章

空類的大小是1,爲了使得這一class的兩個object得以在內存中配置獨一無二的地址 一個virtual base class subobject 只會在derived class中存在一份實例,不管它在class繼承體系中出

原创 深度探索C++對象模型筆記 —— 第二章

有四種情況,編譯器必須爲未聲明構造函數的類合成一個默認構造函數,四種情況爲:“帶有默認構造函數”的成員類對象,“帶有默認構造函數”的基類,“帶有虛函數”的類,在繼承鏈中有虛繼承的。至於沒有存在這四種情況而又沒有聲明任何構造函數的

原创 深度探索C++對象模型筆記 —— 第四章

靜態成員函數不能直接存取其class中的nonstatic members;不能夠被聲明Wieconst,volatile或virtual;它不需要經由class object才被調用——雖然大部分時候它是這樣被調用的 ptr

原创 分配內存:malloc,operator new,new

分配內存方式 Complex* pc=new Complex(1,2); 編譯器轉爲: Complex pc; try{ (1) void men=operator new(sizeof(Complex)); (2) pc=s

原创 MySQL進階版

join 索引: 索引實際上也是一張表,保存了主鍵與索引字段,並指向實體表的記錄,所以索引列也是佔空間的 雖然索引提高了查詢速度,但是降低了更新表的速度,如對錶進行inset,update,和delete,因爲在更新表時,不僅要

原创 MySQL基礎版

最近在工作中主要是測試SQL語句,所以看了一下SQL語句的語法 select 查詢列表 from 表名 查詢列表可以是:表中的字段、常量值、表達式、函數 查詢的結果是一個虛擬的表格 起別名可以用as,也可以用空格,如果別名爲關鍵