Time of Update: 2017-09-06
標籤:ptr數組 Arrays數組是內建(build-in)類型,是一組同類型資料的集合,它是實值型別,通過從0開始的下標索引訪問元素值。在初始化後長度是固定的,無法修改其長度。當作為方法的入參傳入時將複製一份數組而不是引用同一指標。數組的長度也是其類型的一部分,通過內建函數len(array)擷取其長度。在開始前先瞭解指標與地址:Go 語言中指標是很容易學習的,Go 語言中使用指標可以更簡單的執行一些任務,變數是一種使用方便的預留位置,用於引用電腦記憶體位址,Go 語言的取地址符是 &
Time of Update: 2017-09-06
標籤:switchswitch是最靈活的一種控制語句,在使用switch時候,需要注意: --左花括弧"{"必須與switch處於同一行 --條件運算式不限制為常量或者整數 --單個case中,可以出現多個結果選項 --與C語言等規則相反,G0語言不需要break來明確退出一個case &nb
Time of Update: 2017-09-04
標籤:go if Golang中,if/else
Time of Update: 2017-09-05
標籤:go for
Time of Update: 2017-09-07
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。最近項目中的Node版本升級到了8.x,導致在將某個檔案夾打包的過程中失敗了,之前用的是archiver這個庫,在Node6.x版本中沒啥問題,但到了Node8.x版本中就會出現下面的異常:TypeError: Cannot read property 'pipesCount' of undefined at module.exports.Readable.pipe (_stream_readable.js:
Time of Update: 2017-09-07
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go語言的指標類型簡單地說go語言的指標類型和C/C++的指標類型用法是一樣的,除了出去安全性的考慮,go語言增加了一些限制,包括如下幾條:不同類型的指標不能互相轉化,例如*int, int32, 以及int64任何普通指標類型*T和uintptr之間不能互相轉化指標變數不能進行運算, 比如C/C++裡面的++, --運算舉例來說package mainimport ( "fmt" )func main() {
Time of Update: 2017-09-07
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。翻譯原文連結 轉帖/轉載請註明出處原文連結@medium.com 發表於2017/08/30我在防垃圾郵件,防病毒和防惡意軟體領域已經工作了15年,前後在好幾個公司任職。我知道這些系統最後都會因為要處理海量的資料而變得非常複雜。我現在是smsjunk.com的CEO並且是KnowBe4的首席架構師。這兩個公司在網路安全領域都非常活躍。有趣的是,在過去10年裡作為一個碼農,所有我經曆過的網站後台開發用的幾乎都是用Ruby on
Time of Update: 2017-09-06
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 整個知識體系圍繞邏輯結構來的話,是面向過程,圍繞對象來的話,是物件導向。所以一個知識體系可以從欄位,函數,結構體入手,再到詳細編碼的邏輯結構,也就是面向過程進行加深。然後是指標,異常機制,IO,並發等。有了基本架構之後才是網路,後台等進階特性。 需要注意的是go語言的設計基本上遵循盡量簡化的原則進行,就是能簡化就簡化,當然,也有部分奇怪的沒有簡化的,但是這也是因為有其他的考量原因。欄位:1.資料操作。
Time of Update: 2017-09-06
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。這是目前學習的最難的Go demo例子*****************************************如果能看懂,你就出師了,我的工作也就結束了*****************************************package mainimport ("fmt")type Fetcher interface {Fetch(url string) (body string, urls
Time of Update: 2017-09-06
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。開始在給dll函數傳遞string參數的時候,總是go總是報記憶體溢出,string轉換的方法:func StrPtr(s string) uintptr {return uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(s)))}糾結很久,然後去golang社區尋找資料,有人建議用指標,func (b *BangWei) WirteLock(lockData LockData)
Time of Update: 2017-09-06
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。前要:好記性不如爛筆頭目標一:時間戳記轉時間格式過程:時間戳記=>Time, Time=>需要的時間格式 timestamp := time.Now().Unix() fmt.Println("列印timestamp:", timestamp) tm := time.Unix(timestamp, 0) // 時間戳記到時間格式
Time of Update: 2017-09-06
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Golang的Interface是個什麼鬼 問題概述 Golang的interface,和別的語言是不同的。它不需要顯式的implements,只要某個struct實現了interface裡的所有函數,編譯器會自動認為它實現了這個interface。第一次看到這種設計的時候,我的第一反應是:What the fuck?這種奇葩的設計方式,和主流OO語言顯式implement或繼承的區別在哪兒呢?
Time of Update: 2017-09-06
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。剛好七八雙月結束,工作整理完畢,下個雙月OKR還沒開始。做久了IOS開發也來擴充下領域,抽空幾天學了下Golang,實現一個爬蟲。一、知識要點1、爬蟲1.1
Time of Update: 2017-09-06
這是一個建立於
Time of Update: 2017-09-06
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。關於 Go 中 Map 類型和 Slice 類型的傳遞Map 類型先看例子 m1:func main() { m := make(map[int]int) mdMap(m) fmt.Println(m)}func mdMap(m map[int]int) { m[1] = 100 m[2] = 200}結果是map[2:200 1:100]我們再修改如下 m2:func main() {
Time of Update: 2017-09-05
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Go語言沒有像其它語言一樣有public、protected、private等存取控制修飾符,它是通過字母大小寫來控制可見度的,如果定義的常量、變數、類型、介面、結構、函數等的名稱是大寫字母開頭表示能被其它包訪問或調用(相當於public),非大寫開頭就只能在包內使用(相當於private,變數或常量也可以底線開頭)例如: visibility/test.gopackage visibility import "
Time of Update: 2017-09-05
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在Golang語言中,資料類型不多,但是夠用,開發項目過程中,Slice屬於最常用的資料結構之一,對其原理理解不清楚,很容易會遺留bug,筆者查詢了很多部落格資料,對Slice的append原理進行一個總結,如果有寫的不清楚不明白之處,請多多包涵,並予以指正。package mainimport "fmt"func main(){ s := []int{5} s = append(s,7)
Time of Update: 2017-09-05
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go中可以使用“+”合并字串,但是這種合并方式效率非常低,每合并一次,都是建立一個新的字串,就必須遍曆複製一次字串。Java中提供StringBuilder類(最高效,線程不安全)來解決這個問題。Go中也有類似的機制,那就是Buffer(線程不安全)。以下是範例程式碼:package mainimport ( "bytes" "fmt")func main() { var
Time of Update: 2017-09-05
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。前言Golang 是 Google 在2007年發布的一門開源的靜態編譯型程式設計語言,在記憶體回收、結構類型以及並發編程的處理上擁有自己的獨到之處,近年來更是成為使用頻率上升速度最快的程式設計語言之一。想必大家對於 Golang 的大名早已有所耳聞,而今天作者菌則準備通過自己的一個開源項目 GoCollaborate
Time of Update: 2017-09-05
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。原文連結:There is no pass-by-reference in Go我之前關於指標的那篇帖 引起了很多關於引用傳遞的爭議。這篇文章算是對這些爭議的回應吧。首先要清楚的是:Go 語言中沒有引用變數,所以 Go 語言就沒有引用傳遞的函數調用的文法。什麼是引用變數?在像 C++ 這樣的語言中你可以給一個已經存在的變數定義一個別名,這個別名就被稱為引用變數。#include <stdio.h>int main()