MST

星途 面试题库

面试题:Go语言切片条件筛选的复杂逻辑

假设有一个结构体切片,结构体定义如下:type Person struct { Name string; Age int; City string },现有切片 []Person{{"Alice", 25, "New York"}, {"Bob", 30, "Los Angeles"}, {"Charlie", 20, "Chicago"}, {"David", 35, "New York"}},请编写一个函数,筛选出年龄大于等于30岁且来自纽约("New York")的人员,并返回新的切片。
47.6万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import "fmt"

type Person struct {
    Name string
    Age  int
    City string
}

func filterPersons(persons []Person) []Person {
    var result []Person
    for _, person := range persons {
        if person.Age >= 30 && person.City == "New York" {
            result = append(result, person)
        }
    }
    return result
}

你可以使用以下方式调用这个函数:

func main() {
    persons := []Person{
        {"Alice", 25, "New York"},
        {"Bob", 30, "Los Angeles"},
        {"Charlie", 20, "Chicago"},
        {"David", 35, "New York"},
    }
    filtered := filterPersons(persons)
    for _, person := range filtered {
        fmt.Printf("Name: %s, Age: %d, City: %s\n", person.Name, person.Age, person.City)
    }
}