Time of Update: 2018-04-15
標籤:reflectionreflection 反射反射可大大提高程式的靈活性,使得interface{}有更大的發揮餘地反射使用TypeOf和ValueOf函數從介面中擷取目標對象資訊反射會將匿名欄位作為獨立欄位(匿名欄位本質)想要利用反射修改對象狀態,前提是interface.data是settable,即pointer-interface 通過反射可以"動態"調用方法舉例1、通過反射來擷取屬性資訊,方法資訊//反射 練習//擷取欄位的類型資訊,方法資訊,
Time of Update: 2018-04-14
標籤:interfaceinterface 理論介面是一個或多個方法簽名的集合只要某個類型擁有該介面的所有方法簽名,即算實現該介面,無需顯示聲明實現了哪個介面,這稱為Structural Typing
Time of Update: 2018-04-13
標籤:mapmap理論基礎知識類似其他語言中的雜湊表或者字典,以key-value形式儲存資料key必須是支援== 或者 != 比較運算的類型,不可以是函數,map或者slicemap尋找比線性搜尋快很多,但比使用索引訪問資料的類型慢100倍map使用make()建立,支援:=這種簡寫方式make([keyType]valueType, cap),
Time of Update: 2018-04-13
標籤:method方法methodGo 中雖沒有class, 但依舊有method通過顯示說明receiver來實現與某個類型的組合只能為同一個包中的類型定義方法receiver可以是類型的值或指標不存在方法重載可以使用值或者指標來調用方法,編譯器會自動完成轉換從某種意義上來說,方法是函數的文法糖,因為receiver其實就是方法所接收的第一個參數(Method Value vs. Method
Time of Update: 2018-04-12
標籤:expr variable port 處理機 source 資訊 float main 實現 Go語言類型轉換類型轉換用於將一種資料類型的變數轉換為另外一種類型的變數,Go語言類型轉換基本
Time of Update: 2018-04-13
標籤:go struct struct 結構Go中的struct與C語言中的struct非常相似,並且Go沒有class使用type<Name> struct{} 定義結構,名稱遵循可見度規則支援指向自身的指標類型成員支援匿名結構,可用作成員或定義成員變數匿名結構也可以用於map的值可以使用字面值對結構進行初始化允許直接通過指標來讀寫結構成員相同類型的成員可以進行直接拷貝賦值支援== 與 != 比較子,但不支援
Time of Update: 2018-04-13
標籤:16px microsoft 點擊 AC 字元 .exe winrar art tail 78328873 第一步:到WinRAR官網www.rarlab.com下載自己需要的版
Time of Update: 2018-04-15
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。定製 GORM CallbacksGORM itself is powered by Callbacks, so you could fully customize GORM as you want項目地址:https://github.com/EDDYCJY/go... GORM 本身是由回調驅動的,所以我們可以根據需要完全定製 GORM,以此達到我們的目的註冊一個新的回調刪除現有的回調替換現有的回調註冊回調的順序在 GORM
Time of Update: 2018-04-15
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。## 介紹(Introduction)最近,在 Slack 上我看過大量關於介面的問題。大多數時候,答案都很有技術性,並都關注了實現的細節。實現(細節)對於調試很有協助,但實現對設計卻毫無協助。當用介面來設計代碼時,行為才是主要需要關注的。在這篇博文中,我希望提供一個不同的思考方式,關於介面,和用他們進行代碼設計。我想讓你停止關注於實現細節,而是關注於介面和具體的資料的關係。## 面向資料設計(Data Oriented
Time of Update: 2018-04-14
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在之前的文章中,我們簡要介紹了使用者介面和Web用戶端以及如何使用微工具包rpc代理與我們新建立的rpc服務進行互動。本文將討論如何建立雲環境來託管我們的服務。 我們將使用 Terraform 在 Google Cloud 平台上構建我們的雲群集。這應該是一篇相當短的文章,但它也很重要。## 為什麼選擇 Terraform?我已經使用了幾種不同的雲供應解決方案,但對我而言,Hashicorps Terraform
Time of Update: 2018-04-14
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。前言在本文中以及下篇文章中,我們會研習Golang 的源碼來探究Golang 是如何?HTTP URL 匹配的,並對比 mux的實現。本人水平有限,如有疏漏和不正確的地方,還請各位不吝賜教,多謝!Golang 源碼基於1.9.2本文我們有這樣一個HTTP 伺服器程式:func main() { http.HandleFunc("/bar", func(w http.ResponseWriter, r
Time of Update: 2018-04-14
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。讓我們來看幾個 go 函數調用的簡單例子。通過研究 go 編譯器為這些函數產生的彙編代碼,我們來看看函數調用是如何工作的。這個課題對於一篇小小的文章來講有點費勁,但是別擔心,組合語言是非常簡單的,連 CPU
Time of Update: 2018-04-14
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在[第一部分](https://studygolang.com/articles/12553)裡,我們首先介紹了開發環境並且實現了一個簡單的調試器(tracer),它可以使子進程(tracee)在最開始處停止運行,然後繼續執行,並顯示它的標準輸出。現在是擴充這個程式的時候了。通常,調試器允許逐步執行被調試的代碼,這個可以通過 [ptrace](http://man7.org/linux/man-pages/man2/ptrace.
Time of Update: 2018-04-14
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。struct 是一系列包含名稱和類型的欄位。通常就像這樣:```gopackage mainimport "fmt"type Person struct {name stringage int32}func main() {person := Person{name: "Michał", age: 29}fmt.Println(person) // {Michał
Time of Update: 2018-04-13
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go 的 defer 語句對改善代碼可讀性起了很大作用。但是,某些情況下 defer 的行為很容易引起混淆,並且難以快速理清。儘管作者已經使用 go 兩年多了,依然會被 defer 弄得撓頭不已。我的計劃是把過去曾困惑過我的一系列行為匯總起來,作為對自己的警示。## defer 的範圍是一個函數,不是一個語句塊一個變數只存在於一個語句塊的範圍內。 defer
Time of Update: 2018-04-13
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。用過一段時間的 Go 之後,我學會了如何使用一個不帶緩衝的 channel 去建立一個 goroutine 池。我喜歡這個實現,這個實現甚至比這篇博文描述的更好。雖然這樣說,這篇博文仍然對它所描述的部分有一定的價值。[https://github.com/goinggo/work](https://github.com/goinggo/work)##
Time of Update: 2018-04-13
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。![custom errors](https://raw.githubusercontent.com/studygolang/gctt-images/master/golang-series/first-class-functions-golang.png)歡迎來到 [Golang 系列教程](https://studygolang.com/subject/2)的第 33 篇。## 什麼是頭等函數?**支援頭等函數(First
Time of Update: 2018-04-13
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。GB 介紹Site: https://getgb.io/Github: https://github.com/constabula...官網首頁介紹A project based build tool for the Go programming language.所以gb 是一個構建工具,依賴管理外掛程式完成的 gb-vendordoc為什麼用gb,最喜歡的一點是 Project based workflow 基於
Time of Update: 2018-04-13
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。一、前言在電腦領域,當單機效能達到瓶頸時,有兩種方式可以解決效能問題,一是堆硬體,進一步提升配置,二是分布式,水平擴充。當然,兩者都是一樣的燒錢。今天聊聊我所理解的分布式系統的架構思路。二、分布式系統的兩種方式平時接觸到的分布式系統有很多種,比如Distributed File System,分散式資料庫,分布式WebService,分散式運算等等,面向的情景不同,但分布式的思路是否是一樣的呢?1.簡單的例子假設我們有一台伺服器,
Time of Update: 2018-04-13
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。我在幾家不同的公司從事反垃圾郵件,防病毒和反惡意程式碼軟體行業工作超過15年,現在我知道這些系統最終會因為我們每天處理的大量資料而變得複雜。目前,我是smsjunk.com的CEO和KnowBe4的首席架構師,他們都是網路安全行業的公司。有趣的是,在過去的10年左右,作為一名軟體工程師,我參與過的所有Web後端開發大部分都是在Ruby on Rails中完成的。不要誤會我的意思,我喜歡Ruby on