我們在處理檔案的時候,很多時候會需要解決檔案拷貝、檔案列印、檔案搜尋、檔案排序、檔案統計類這一類問題,這類程式通常會有比較相似的結構,乙個處理輸入的迴圈,在每乙個輸入元素上執行計算處理,在處理的同時或者處理完成之後進行結果輸出。
首先我們來書寫乙個dup程式輸出標準輸入流中的出現多次的行,在行內容前是出現計數的次數。
package main
import(
"fmt"
"os"
"bufio"
)func main()
//暫時忽略處理輸入的異常
for line, n := range counts
}}
在這裡程式執行後,輸入字串內容,但是這裡並不會自動結束,需要手動輸入eof,linux下是鍵入ctrl + d,windows下是ctrl + z。然後程式才會執行至下一步。
go語言和其他c系列語言有很多不一樣的地方,比如if和for後面不必寫括號,但是花括號的左半部分不能換行,這是強制的,否則無法編譯通過。
map是go語言內建的key/value型資料結構,這個資料結構能提供常數時間的訪問操作。
與go語言的其他內建型別一樣,不用擔心未初始化的問題,編譯器會自動將其初始化為0或者空字串。
程式中用到了bufio的package,主要的目的是幫助我們更方便有效地處理程式的輸入和輸出。這個包最有用的乙個特性是scanner型別,可以簡單實現接收輸入,或把輸入打散成行或者單詞。
日常 Go語言聖經 查詢重複行
從標準輸入中讀取資料 1.if語句條件兩邊也不加括號,但是主體部分需要加 2.map儲存了鍵 值 key value 的集合,對集合元素,提供常數時間的存 取操作,map string int key 的型別string 和value 的型別int 3.內建函式 make 建立空map,counts...
go語言學習 找出重複行
程式 package main import bufio fmt os func main counts input.text for line,n range counts 使用make 建立型別 1 建立切片 var v make int,5 2 建立map counts make map st...
使用ROWID查詢和刪除重複行
sql create table lunar 2c1 char 4 3c2 varchar2 20 4 5 表已建立。sql insert into lunar values 1111 1111 已建立1 行。sql insert into lunar values 1112 1111 已建立1 行...