Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Student{
- let name: String
- let grade: Int
- init(name: String, grade: Int) {
- self.name = name
- self.grade = grade
- }
- }
- func filterStudents(students: [Student], closure: (Student) -> Bool) -> [Student] {
- var filteredStudents: [Student] = []
- for student in students {
- if closure(student) {
- filteredStudents.append(student)
- }
- }
- return filteredStudents
- }
- let students = [Student(name: "Gvantsa", grade: 100), Student(name: "Sofo", grade: 98),
- Student(name: "Gio", grade: 40),
- Student(name: "Deme", grade: 88)]
- let passExamClosure: (Student) -> Bool = { student in
- return student.grade >= 51
- }
- var filteredStudents = filterStudents(students: students, closure: passExamClosure)
- //for passStudent in filteredStudents {
- // print(passStudent.name)
- //}
- //2
- func sortStudents(students: [Student], closure: (Student, Student) -> Bool) -> [Student] {
- return students.sorted(by: closure)
- }
- let sortByGradesClosure: (Student, Student) -> Bool = { student1, student2 in return student1.grade > student2.grade }
- var sortGradesStudents = sortStudents(students: students, closure: sortByGradesClosure)
- for student in sortGradesStudents {
- print(student.name)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement