- Go Systems Programming
- Mihalis Tsoukalos
- 340字
- 2021-07-02 18:08:02
Printing all the values from a given column of a line
This is a very common scenario, as you often will need to get all the data from a given column of a structured text file in order to analyze it afterward. The code of readColumn.go, which prints values in the third column, will be presented in two parts.
The first part is as follows:
package main import ( "fmt" "strings" ) func main() { var s [3]string s[0] = "1 2 3" s[1] = "11 12 13 14 15 16" s[2] = "-1 2 -3 -4 -5 6"
Here, you import the required Go packages and define a string with three lines using an array with three elements.
The second part contains the following Go code:
column := 2 for i := 0; i < len(s); i++ { data := strings.Fields(s[i]) if len(data) >= column { fmt.Println((data[column-1])) } } }
First, you define the column that interests you. Then, you start iterating over the strings stored in the array. This is similar to reading a text file line by line. The Go code inside the for loop splits the fields of the input line, stores them in the data array, verifies that the value from the desired column is present, and prints it on your screen. All of the hard work is done by the handy strings.Fields() function that splits a string based on whitespace characters, as defined in unicode.IsSpace(), and returns a slice of strings. Although readColumn.go does not use the regexp.Compile() function, the logic behind its implementation with the use of strings.Fields() is still based on the principles of regular expressions.
Executing readColumn.go will generate the following kind of output:
$ go run readColumn.go 2 12 2
Chapter 6, File Input and Output, will show an improved version of readColumn.go that you can use as a starting point in case you want to modify the rest of the examples shown.
- Java Web開發學習手冊
- What's New in TensorFlow 2.0
- Learning Apex Programming
- Oracle從新手到高手
- Ray分布式機器學習:利用Ray進行大模型的數據處理、訓練、推理和部署
- 名師講壇:Java微服務架構實戰(SpringBoot+SpringCloud+Docker+RabbitMQ)
- Android玩家必備
- Go語言編程
- JavaScript程序設計(第2版)
- MySQL程序員面試筆試寶典
- 自學Python:編程基礎、科學計算及數據分析(第2版)
- 編程改變生活:用Python提升你的能力(進階篇·微課視頻版)
- Mastering Adobe Captivate 7
- 零基礎學HTML+CSS
- Web程序設計:ASP.NET(第2版)