Advertisement
gvantsakikandze

Students

Jul 21st, 2023
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.35 KB | None | 0 0
  1. class Student{
  2.     let name: String
  3.     let grade: Int
  4.    
  5.     init(name: String, grade: Int) {
  6.         self.name = name
  7.         self.grade = grade
  8.     }
  9. }
  10.     func filterStudents(students: [Student], closure: (Student) -> Bool) -> [Student] {
  11.         var filteredStudents: [Student] = []
  12.         for student in students {
  13.             if closure(student) {
  14.                 filteredStudents.append(student)
  15.             }
  16.         }
  17.         return filteredStudents
  18.     }
  19.  
  20.    
  21.  
  22.  
  23. let students  = [Student(name: "Gvantsa", grade: 100),          Student(name: "Sofo", grade: 98),
  24.                  Student(name: "Gio", grade: 40),
  25.                  Student(name: "Deme", grade: 88)]
  26.  
  27. let passExamClosure: (Student) -> Bool = { student in
  28.     return student.grade >= 51
  29. }
  30.  
  31.  
  32. var filteredStudents = filterStudents(students: students, closure: passExamClosure)
  33.  
  34. //for passStudent in filteredStudents {
  35. //    print(passStudent.name)
  36. //}
  37.  
  38. //2
  39. func sortStudents(students: [Student], closure: (Student, Student) -> Bool) -> [Student] {
  40.     return students.sorted(by: closure)
  41. }
  42.  
  43. let sortByGradesClosure: (Student, Student) -> Bool = { student1, student2 in return student1.grade > student2.grade }
  44.  
  45. var sortGradesStudents = sortStudents(students: students, closure: sortByGradesClosure)
  46.  
  47. for student in sortGradesStudents {
  48.     print(student.name)
  49. }
  50.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement