讀和寫是軟體中很普遍的行為,提起它們會立即想到讀寫檔案、快取(比如位元組或字串切片)、標準輸入輸出、標準錯誤以及網路連線、管道等等,或者讀寫我們的自定義型別。為了讓**盡可能通用,go 採取了一致的方式來讀寫資料。io 包提供了用於讀和寫的介面 io.reader 和 io.writer:
type
reader inte***ce
type
writer inte***ce
只要型別實現了讀寫介面,提供 read() 和 write 方法,就可以從它讀取資料,或向它寫入資料。乙個物件要是可讀的,它必須實現 io.reader 介面,這個介面只有乙個簽名是 read(p byte) (n int, err error) 的方法,它從呼叫它的物件上讀取資料,並把讀到的資料放入引數中的位元組切片中,然後返回讀取的位元組數和乙個 error 物件,如果沒有錯誤發生返回 『nil』,如果已經到達輸入的尾端,會返回 io.eof(「eof」),如果讀取的過程中發生了錯誤,就會返回具體的錯誤資訊。類似地,乙個物件要是可寫的,它必須實現 io.writer 介面,這個介面也只有乙個簽名是 write(p byte) (n int, err error) 的方法,它將指定位元組切片中的資料寫入呼叫它的物件裡,然後返回實際寫入的位元組數乙個 error 物件(如果沒有錯誤發生就是 nil)。io 包裡的 readers 和 writers 都是不帶緩衝的,bufio 包裡提供了對應的帶緩衝的操作,在讀寫 utf-8 編碼的文字檔案時它們尤其有用。在 第12章 我們會看到很多在實戰使用它們的例子。
在實際程式設計中盡可能的使用這些介面,會使程式變得更通用,可以在任何實現了這些介面的型別上使用讀寫方法。
例如乙個 jpeg 圖形解碼器,通過乙個 reader 引數,它可以解碼來自磁碟、網路連線或以 gzip 壓縮的 http 流中的 jpeg 圖形資料,或者其他任何實現了 reader 介面的物件。
Akka探索第二個例子by fsharp
本文重度借鑑了github上akkabootcamp教程。先上 open akka open akka.actor open system type message continueprocess inputsuccess of string inputerror of string nullinp...
第二個作業!
作業要求 從鍵盤輸入乙個四位正整數。首先分離出該正整數中的每一位數字,並按逆序顯示輸出各位數字 然後用分離出的每位數字組成乙個最大數和乙個最小數,並顯示輸出。例如,若輸入的四位正整數為3175。按逆序顯示輸出分離出的各位數字為5713 組成的最大數為7531,組成的最小數為1357。具體要求 1 輸...
第二個系統
在進入工作後,參與的第二系統,也剛好是乙個失敗的專案重新再設計的乙個專案。全程參與了設計討論和相關功能模組的實現。到最後證明,這個系統依舊是失敗的。事隔了1年多了,回頭看問題,希望能看明白它。首先,整個團隊太年輕了。不是剛畢業沒多久,就是工作了才一年。其次,需求的失控,不懂得拒絕 因為是進入工作不久...