Golang 为每个过滤成一个新的 var
Posted
技术标签:
【中文标题】Golang 为每个过滤成一个新的 var【英文标题】:Golang for each filtering into a new var 【发布时间】:2022-01-14 18:11:57 【问题描述】:我正在处理每个循环和信息变量,并通过 A) regex.matchString B)Timecomparrison 对其进行过滤。过滤效果很好,我有我需要的数据,但目前我在部分循环中通过 fmt.Println 将其输出到屏幕。我的目标是获取这些数据并使用现在过滤的列表构建另一个 var。我想我需要创建一个新变量并添加到它?但是我该如何退回它以及我以后可以使用的东西呢?
感谢任何帮助。
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)
【问题讨论】:
【参考方案1】:我认为你需要这样的东西。
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
我清理了代码,添加了一个类型和一些数据,修复了一些问题并重命名了一些东西,但你应该明白了 :)
【讨论】:
filter()
应该传递一个 []Thing
参数,而不是硬编码过滤器输入。
当然,我只是想让代码尽可能接近他所拥有的。这将是一个简单的改变:)
这终于回答了我的问题,谢谢以上是关于Golang 为每个过滤成一个新的 var的主要内容,如果未能解决你的问题,请参考以下文章