如何使用排序正确显示可读的输出?

时间:2018-01-22 14:14:24

标签: swift sorting struct

我的代码的输出都很好,它已经排序了,但问题是,它包含一些我不需要的垃圾值,我将提供它的示例输出。

这是我的代码:

$dir -contains '6edaaec9c5b9cea3f035065d7283ca07'

Here is the Output of the Given Code

如您所见,输出显示了一些不需要的值。

我想要显示的是给出的更好的可读值。

谢谢!

2 个答案:

答案 0 :(得分:2)

如果您使自定义类符合CustomStringConvertible协议(添加类型为description的单个计算变量String),那么当您打印其中一个对象时,它会显示格式良好。

您可以使用print语句的格式作为起点。

答案 1 :(得分:0)

功能已经以格式化方式打印您的学生阵列。

删除您发布的代码末尾的print(x)以获得干净的输出。

编辑:

如果我正确理解您的需求,您还需要按GPA打印排序的学生列表。 (代码中的x)

您可以通过将x传递给stud函数并修复stud函数来使用函数参数而不是student var来实现。

struct Student {
  var id: Int = 0;
  var name: String = String();
  var course: String = String();
  var GPA: Float = 0.0;
}

let student = [
  Student(id: 201520032, name: "Ton Agnis", course: "BSITWMA", GPA: 3.69),
  Student(id: 201620122, name: "Juan Cruz", course: "BSCSSE", GPA: 2.23),
  Student(id: 201723214, name: "Pedro Sy", course: "BSITAGD", GPA: 2.87),
  Student(id: 201418492, name: "Phot xPro", course: "BSCPE", GPA: 3.99)
]

func stud(get studs:[Student]){

  print("Student No.\t\tID\t\tName\t\t\tCourse\t\tGPA")
  for i in 0..<studs.count {
    print("Student \(i+1) \t \(studs[i].id)\t\(studs[i].name)\t\t\(studs[i].course)\t\t\(studs[i].GPA)")
  }
}

let x = student.sorted{ $0.GPA < $1.GPA }

stud(get: x)