Golang 每次过滤成一个新的 var

Golang for each filtering into a new var

我正在处理每个循环和信息变量,并通过 A) regex.matchString B) 时间比较对其进行过滤。过滤效果很好,我有我需要的数据,但目前我在循环的一部分通过 fmt.Println 将它输出到屏幕。我的目标是获取该数据并使用现在过滤的列表构建另一个 var。我想我需要创建一个新变量并添加到它?但是我如何 return 以及我以后可以使用的东西?

感谢任何帮助。

   for _, thing := range things {
 
       if thing.element1 != nil {
 
           matched, err := regexp.MatchString(z, element1)
 
           if err != nil {
               fmt.Println(err)
           }
 
           if matched {
 
               if timecomparrison(element2, a) {
 
                  
                   // this is a section that needs to be added new var and returned as a var
                   fmt.Println("****")
                   fmt.Println("element1:", element1)
                   fmt.Println("element2:", element2)
 
               }
           }
       }
   }
 
}

我想你需要这样的东西。

type Thing struct {
    element1 string
    element2 string
}

func filter() []Thing {
    things := []Thing{
        {element1: "element1", element2: "element2"},
    }
    var result []Thing
    regex := "/{}d/"
    date := time.Now
    for _, thing := range things {
        if thing.element1 != nil {
            matched, err := regexp.MatchString(regex, thing.element1)
            if err != nil {
                fmt.Println(err)
            }
            if matched {
                if timeComparison(thing.element2, date) {
                    // this is a section that needs to be added new var and returned as a var
                    fmt.Println("****")
                    fmt.Println("element1:", thing.element1)
                    fmt.Println("element2:", thing.element2)
                    result = append(result, thing)
                }
            }
        }
    }
    return result
}

我清理了代码,添加了类型和一些数据,修复了一些问题并重命名了一些东西,但你应该明白了:)