Фильтрация

Последнее обновление: 04.03.2024

C++

C#

Dart

F#

JavaScript

Kotlin

Python

C++

Начиная со стандарта С+20

#include <iostream>
#include <vector>
#include <ranges>

class Person
{
public:
    Person(std::string name, unsigned age): name{name}, age{age}{}
    std::string getName() const {return name;}
    unsigned getAge() const {return age;}
    void print() const  
    {
        std::cout << name <<"\t" << age << std::endl;
    }
private:
    std::string name;
    unsigned age;
}; 
int main()
{
    std::vector<Person> people 
    {
        Person{"Tom", 38}, Person{"Kate", 31}, Person{"Bob", 42}, 
        Person{"Alice", 34}, Person{"Sam", 25}
    };
    auto ageMoreThan33 = [](const Person& p){return p.getAge() > 33;};
    // фильтрация с помощью функции представления
    auto filter_view = people | std::views::filter(ageMoreThan33);

    for(const auto& person: filter_view)
    {
        person.print();
    }
    // фильтрация с помощью конструктора представления
    filter_view = std::ranges::filter_view(people, ageMoreThan33);

    for(const auto& person: filter_view)
    {
        person.print();
    }
}

C#

var people = new List<Person>
{
    new Person("Tom", 38), new Person("Kate", 31), 
    new Person("Bob", 42), new Person("Alice", 34), 
    new Person("Sam", 25)
};
    
// фильтрация элементов, у которых age > 33
var view = people.Where((person) => person.Age > 33);
 
foreach(var person in view)
{
    person.Print();
}

class Person
{
    public string Name {get;}
    public int Age {get;}
    public Person(string name, int age)
    {
      this.Name = name;
      this.Age = age;
    }
    public void Print()  
    {
        Console.WriteLine($"Name: {Name} \tAge: {Age}");
    }
}

Dart

class Person{
    String name;
    int age;
    Person(this.name, this.age);
    void display()  
    {
        print("Name: $name \tAge: $age");
    }
}

void main (){
    var people = [
        Person("Tom", 38), Person("Kate", 31), Person("Bob", 42), 
        Person("Alice", 34), Person("Sam", 25)
    ];
    
    // фильтрация элементов, у которых age > 33
    var view = people.where((person) => person.age > 33);
 
    for(final person in view)
    {
        person.display();
    }
}

F#

type Person (name, age) = 
    member _.Name = name
    member _.Age = age
    member _.Print() = printfn $"Name: {name}  Age: {age}"

let people = [ Person("Tom", 38); Person("Kate", 31); Person("Bob", 42); 
        Person("Alice", 34); Person("Sam", 25) ]
    
// фильтрация элементов, у которых age > 33
let view = List.filter (fun (p:Person) ->  p.Age > 33) people

for person in view do person.Print()

JavaScript

function Person(name, age){
        this.name = name;
        this.age = age;
        this.print = function(){ 
            console.log(`Имя: ${this.name}  Возраст: ${this.age}`);
        }
}
const people = [
        new Person("Tom", 38), new Person("Kate", 31), 
        new Person("Bob", 42), new Person("Alice", 34), 
        new Person("Sam", 25)
    ];
    
// фильтрация элементов, у которых age > 33
const view = people.filter((person) => person.age > 33);
 
for(person of view)
{
    person.print();
}

Kotlin

fun main() {
    
    val people = listOf(
        Person("Tom", 38), Person("Kate", 31), Person("Bob", 42),
        Person("Alice", 34), Person("Sam", 25)
    );
    // фильтрация элементов, у которых age > 33
    val view = people.filter{it.age > 33}
    for(person in view){
        person.display();
    }
}

class Person(val name: String, val age:Int){
    fun display() = println("Name: $name \tAge: $age")
}

Python

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age 
                 
    def print(self):
        print(f"Имя: {self.name} Возраст: {self.age}")

people = [
        Person("Tom", 38), Person("Kate", 31), 
        Person("Bob", 42), Person("Alice", 34), 
        Person("Sam", 25) ]
    
# фильтрация элементов, у которых age > 33
view = filter(lambda p: p.age > 33, people)
 
for person in view:
    person.print()
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850