golang學(xué)習(xí)(2)

05.02

net

  • ResolveIAddr(new, addr string)
    這個函數(shù)用來獲取一個TcpAddr對象,類似create socket的作用吧洲尊。
  • ListenTCP(network string, laddr *TCPAddr)
    監(jiān)聽端口,這個和C++的listen一樣
  • Accept()
    用來接收一個連接颜武,
  • DialTcp(network string, laddr, raddr *TCPAddr)
    用來調(diào)用遠(yuǎn)程連接,laddr是本機(jī)地址,一般設(shè)為nil举庶,raddr是遠(yuǎn)端地址。
  • Write()揩抡、Read()
    用來從一個連接中寫入和讀取數(shù)據(jù)

整個流程和C++的差不多户侥,是因為連接的流程都一樣吧镀琉,所以函數(shù)的封裝也都差不多。

斷言

斷言可以判斷變量的類型蕊唐,一般有兩種使用方法屋摔。

  • if判斷
if inst, ok:=a.(Type); ok{
    inst.MethodA()
}
  • switch
switch inst := a.(type) {
    case TypeA:
        inst.MethodA()
    case TypeB:
        inst.MethodB()
    default:
        fmt.Println("unknow type")
}

定時timer

golang自帶的time庫中有三種定時函數(shù)

  • AfterFunc
time.AfterFunc(5 * time.Minute, func() {
    fmt.Printf("expired")
}
  • After
<-time.After(5 * time.Minute)
fmt.Printf("expired")
  • NewTimer
timer := time.NewTimer(5 * time.Minute)
<-timer.C
fmt.Printf("expired")

如果想實現(xiàn)定時函數(shù),可以在After外層套一個for死循環(huán)替梨,這樣每隔對應(yīng)的時間凡壤,就會執(zhí)行一次指定的函數(shù)。但是如果在框架中耙替,想動態(tài)的注冊一些函數(shù),可以使用channel曹体,在死循環(huán)中select這個channle俗扇,如果收到了就執(zhí)行對應(yīng)收到的函數(shù);在注冊時候箕别,需要把時間和函數(shù)傳進(jìn)一個函數(shù)铜幽,這個函數(shù)調(diào)用timer的After函數(shù),來進(jìn)行第一次定時串稀,之后再將自己傳進(jìn)channel除抛。

flag

flag可以用來解析命令行傳進(jìn)的參數(shù),使用方法為flag.type(name, defaultValue, usage)

  • type是對應(yīng)的類型名稱母截,如Bool到忽,Int,String清寇,F(xiàn)loat等
  • name代表命令行參數(shù)中的鍵值喘漏,比如name是"b",那么命令行參數(shù)中-b后面的值就會被flag捕捉到
  • defaultValue在沒有傳入該值得時候使用
  • usage是在用戶輸入失敗的時候华烟,顯示的提示信息
    另外flag還有另外一個函數(shù)翩迈,flag.TypeVar(&flagvar, name, defValue, usage),用來將參數(shù)與一個變量綁定
func main() {
    name := flag.String("name", "ybh", "your name")
    age := flag.Int("age", 22, "you should input a integer")
    var isMale bool
    flag.BoolVar(&isMale, "male", true, "if you are male, input true")
    flag.Parse()
    fmt.Printf("name:%v|age:%v|isMale:%v\n", *name, *age, isMale)
}

如果輸入的參數(shù)有問題盔夜,會直接報錯负饲,輸出你定義的usage信息。
需要注意的是喂链,使用flag.Type方法返回的是指針返十。如果沒有調(diào)用flag.Parse,那么所有的變量都會是默認(rèn)值而不是nil椭微。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吧慢,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子赏表,更是在濱河造成了極大的恐慌检诗,老刑警劉巖匈仗,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異逢慌,居然都是意外死亡悠轩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門攻泼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來火架,“玉大人,你說我怎么就攤上這事忙菠『渭Γ” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵牛欢,是天一觀的道長骡男。 經(jīng)常有香客問我,道長傍睹,這世上最難降的妖魔是什么隔盛? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任丽已,我火速辦了婚禮而咆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘醉锄。我一直安慰自己访得,他們只是感情好龙亲,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著悍抑,像睡著了一般俱笛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上传趾,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天迎膜,我揣著相機(jī)與錄音,去河邊找鬼浆兰。 笑死磕仅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的簸呈。 我是一名探鬼主播榕订,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜕便!你這毒婦竟也來了劫恒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎两嘴,沒想到半個月后丛楚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡憔辫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年趣些,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贰您。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡坏平,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出锦亦,到底是詐尸還是另有隱情舶替,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布杠园,位于F島的核電站顾瞪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏返劲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一栖茉、第九天 我趴在偏房一處隱蔽的房頂上張望篮绿。 院中可真熱鬧,春花似錦吕漂、人聲如沸亲配。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吼虎。三九已至,卻和暖如春苍鲜,著一層夾襖步出監(jiān)牢的瞬間思灰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工混滔, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留洒疚,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓坯屿,卻偏偏與公主長得像油湖,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子领跛,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容