如何使用golang过滤给定数据中的元素?

时间:2015-07-08 08:43:14

标签: go

这是输入数据:

 Name   Dept    College
 A1     CSE     SR1
 A2     CSE     SR2
 A3     ECE     SR1
 A4     EEE     SR3
 A5     ECE     SR1
 A6     MECH    SR2
 A7     CSE     SR1
 A8     EEE     SR1
 A9     ECE     SR3
 A10    MECH    SR3
 A11    EEE     SR1

预期产量: 如果我过滤学院名称(例如:--flag=SR3),则输出应打印在SR3下,名称和部分是什么。

A4 EEE

A10 MECH

1 个答案:

答案 0 :(得分:0)

  1. 您需要为数据设计数据模型。你有几个选择,但最简单的是带有三个字段的结构:名称,部门和大学。数据在数组中。在此处阅读有关数据结构的信息:https://golang.org/doc/effective_go.html#data
  2. 您需要初始化数据结构。也许你有文本文件的输入?然后,您可以使用fmtbufio的方法来阅读它。
  3. 他们需要阅读命令行参数 - 从os.Args获取它们。
  4. 过滤数据并输出结果。这是一个简单的for循环切片,其中包含一个if。使用Println输出结果。
  5. 示例代码:

    package main
    
    import (
      . "fmt"
      "os"
    )
    
    type Record struct {
      Name string
      Department string
      College string
    }
    
    func main() {
      records := make([]Record, 0)
    
      // add records
      records = append(records, Record{"A1", "CSE", "SR1"})
      ...
    
      // get filter from os.Args
      filter := ...
    
      for _, v := range records {
        if v.College == filter {
          Println(v.Name, v.Department)
        }
      }
    }
    

    P.S。如果你问自己为什么这个问题被投票(不是我) - 因为它没有证明你实际上试图解决问题。见https://stackoverflow.com/help/on-topic