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的主要内容,如果未能解决你的问题,请参考以下文章

将boost变体的向量过滤成新的向量?

是 Java 过滤器单例吗

如何在 Binance 中生成新的存款 Tether 地址

Golang basic_leaming2 语言容器

Golang basic_leaming2 语言容器

golang的map为什么不设计成同步(安全)的