AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

Golang 中的 Bufio 包詳解之常用函數

來源: 責編: 時間:2023-10-18 09:18:11 244觀看
導讀Golang 中的 bufio 包是帶緩沖 I/O 操作的標準庫,之前的幾篇文章詳細講解了 bufio.Reader、bufio.Writer 和 bufio.Scanner 這個幾個結構體的使用方法、特性和使用場景,本文介紹一下 bufio 包中的函數。介紹常用函數之

1rY28資訊網——每日最新資訊28at.com

Golang 中的 bufio 包是帶緩沖 I/O 操作的標準庫,之前的幾篇文章詳細講解了 bufio.Reader、bufio.Writer 和 bufio.Scanner 這個幾個結構體的使用方法、特性和使用場景,本文介紹一下 bufio 包中的函數。1rY28資訊網——每日最新資訊28at.com

介紹常用函數之前,先簡單介紹下另一個結構體類型和一個函數類型:bufio.ReadWriter 和 bufio.SplitFunc,對應的定義如下:1rY28資訊網——每日最新資訊28at.com

type ReadWriter struct {	*Reader	*Writer}type SplitFunc func(data []byte, atEOF bool) (advance int, token []byte, err error)

ReadWriter 結構體實現了 io.ReadWriter 接口,SplitFunc 是用來指定自定義分割規則的函數類型,通常結合 bufio.Scanner 使用。1rY28資訊網——每日最新資訊28at.com

創建對象函數

  • func NewReader(rd io.Reader) *Reader,創建一個帶緩沖的 Reader 對象。
  • func NewWriter(w io.Writer) *Writer,創建一個帶緩沖的 Writer 對象。
  • func NewReadWriter(r *Reader, w *Writer) *ReadWriter,創建一個帶緩沖的 ReadWriter 對象。
  • func NewReaderSize(rd io.Reader, size int) *Reader,創建一個帶緩沖的 Reader 對象,使用 size 指定緩沖區的最小值。
  • func NewWriterSize(w io.Writer, size int) *Writer,創建一個帶緩沖的 Writer 對象,使用 size 指定緩沖區的最小值。
  • func NewScanner(r io.Reader) *Scanner,創建一個帶緩沖的 Scanner 對象。

SplitFunc 類型函數

以下幾個函數都是 SplitFunc 類型,通常與 bufio.NewScanner 一起使用。1rY28資訊網——每日最新資訊28at.com

  • func ScanLines(data []byte, atEOF bool) (advance int, token []byte, err error),用于逐行讀取輸入流中的數據。
  • func ScanBytes(data []byte, atEOF bool) (advance int, token []byte, err error),用于逐個字節讀取輸入流中的數據。
  • func ScanRunes(data []byte, atEOF bool) (advance int, token []byte, err error),用于逐個 unicode 編碼讀取輸入流中的數據。
  • func ScanWords(data []byte, atEOF bool) (advance int, token []byte, err error),用于逐個單詞(空格分割)讀取輸入流中的數據。

使用示例

package mainimport (	"bufio"	"fmt"	"os"	"strings")func main() {	// 確定讀取文件的路徑	path := "file.txt"	// 打開文件并處理錯誤	file, err := os.Open(path)	if err != nil {		panic(err)	}	defer file.Close()	// 創建Scanner類型對象	scanner := bufio.NewScanner(file)	// 設置分割函數	scanner.Split(bufio.ScanWords)	// 創建一個map對象,用于存儲單詞出現的次數	counts := make(map[string]int)	// 讀取文件內容并統計單詞出現次數	for scanner.Scan() {		word := strings.ToLower(scanner.Text())		counts[word]++	}	// 檢查Scanner是否出錯	if err := scanner.Err(); err != nil {		panic(err)	}	// 輸出結果到控制臺	for word, count := range counts {		fmt.Printf("%s: %d/n", word, count)	}	// 讓用戶根據輸入的關鍵字進行篩選	fmt.Print("Enter keyword to filter results: ")	reader := bufio.NewReader(os.Stdin)	input, _ := reader.ReadString('/n')	keyword := strings.TrimSpace(input)	if keyword != "" {		for word, count := range counts {			if strings.Contains(word, keyword) {				fmt.Printf("%s: %d/n", word, count)			}		}	}}

首先創建了一個 Scanner 類型的對象,指定了 ScanWords 作為分隔函數,然后遍歷文件內容,統計單詞出現的次數并將結果存儲到一個map中,最后讓用戶輸入關鍵字進行篩選,根據關鍵字過濾并輸出結果。1rY28資訊網——每日最新資訊28at.com

小結

bufio 是一個提供了帶緩沖讀寫操作的包,通過使用 bufio 包提供的類型和方法,可以高效地讀寫數據,特別是當涉及到大量數據的讀寫時,可以大大提高程序的性能。1rY28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-13829-0.htmlGolang 中的 Bufio 包詳解之常用函數

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 基于ArkTS的應用入場動畫

下一篇: Spring Boot的自動配置原理及示例說明

標簽:
  • 熱門焦點
  • 俄羅斯:將審查iPhone等外國公司設備 保數據安全

    iPhone和特斯拉都屬于在各自領域領頭羊的品牌,推出的產品也也都是數一數二的,但對于一些國家而言,它們的產品可靠性和安全性還是在限制范圍內。近日,俄羅斯聯邦通信、信息技術
  • 2023年Q2用戶偏好榜:12+256G版本成新主流

    3月份的性能榜、性價比榜和好評榜之后,就要輪到2023年的第二季度偏好榜了,上半年的新機潮已經過去,最明顯的肯定就是大內存和存儲的機型了,另外部分中端機也取消了屏幕塑料支架
  • K6:面向開發人員的現代負載測試工具

    K6 是一個開源負載測試工具,可以輕松編寫、運行和分析性能測試。它建立在 Go 和 JavaScript 之上,它被設計為功能強大、可擴展且易于使用。k6 可用于測試各種應用程序,包括 Web
  • 2023 年的 Node.js 生態系統

    隨著技術的不斷演進和創新,Node.js 在 2023 年達到了一個新的高度。Node.js 擁有一個龐大的生態系統,可以幫助開發人員更快地實現復雜的應用。本文就來看看 Node.js 最新的生
  • 微信語音大揭秘:為什么禁止轉發?

    大家好,我是你們的小米。今天,我要和大家聊一個有趣的話題:為什么微信語音不可以轉發?這是一個我們經常在日常使用中遇到的問題,也是一個讓很多人好奇的問題。讓我們一起來揭開這
  • 2023年,我眼中的字節跳動

    此時此刻(2023年7月),字節跳動從未上市,也從未公布過任何官方的上市計劃;但是這并不妨礙它成為中國最受關注的互聯網公司之一。從2016-17年的抖音強勢崛起,到2018年的“頭騰
  • 品牌洞察丨服務本地,美團直播成效幾何?

    來源:17PR7月11日,美團App首頁推薦位出現“美團直播”的固定入口。在直播聚合頁面,外賣“神槍手”直播間、美團旅行直播間、美團買菜直播間等均已上線,同時
  • 機構稱Q2國內智能手機銷量同比下滑4% vivo份額重回第1

    7月29日消息,根據市場調查機構Counterpoint Research公布的最新報告,2023年第2季度中國智能手機銷量同比下降4%,創新自2014年以來第2季度銷量新低。報
  • 蘋果MacBook Pro 2021測試:仍不支持平滑滾動

    據10月30日9to5 Mac 消息報道,蘋果新的 14 英寸和 16 英寸 MacBook Pro 2021 上市后獲得了不錯的評價,亮點包括行業領先的性能,令人印象深刻的電池續航,精美豐
Top