Swift 我需要帮助,使斯威夫特与功能

Swift 我需要帮助,使斯威夫特与功能,swift,Swift,Swift 5.0中有此作业: 课程介绍如下。在该类的主体中,创建一个函数,该函数将为特定对象打印该类的参数。创建这样一个类Student对象,调用此函数并在屏幕上显示结果: 职业班 class Student { var name: String var surname: String var yearOfBorn: Int var mark: Double init(name: String, surname: String, yearOfBorn:

Swift 5.0中有此作业:

课程介绍如下。在该类的主体中,创建一个函数,该函数将为特定对象打印该类的参数。创建这样一个类Student对象,调用此函数并在屏幕上显示结果:

职业班

class Student {
    var name: String
    var surname: String
    var yearOfBorn: Int
    var mark: Double
    init(name: String, surname: String, yearOfBorn: Int, mark: Double) {
        self.name = name
        self.surname = surname
        self.yearOfBorn = yearOfBorn
        self.mark = mark
    }
}
我怎样才能做到? 我正在努力:

func printStudent() {
    if name == name {
        print(name)
    } else if surname == surname {
        print(surname)
    } else if yearOfBorn == yearOfBorn {
        print(yearOfBorn)
    } else if mark == mark {
        print(mark)
    }
}
请尝试以下代码:

func printStudent () {
  print("name: \(self.name), surname: \(self.surname), yearOfBorn: \ . 
  (self.yearOfBorn), mark: \(self.mark)")
}

如果要打印对象的所有属性,则不需要此If语句;事实上,如果将name==name作为参数传递,则将始终输入第一条if语句,从而跳过其他语句

您只需要创建一个这样的函数,在其中打印每个属性:

func printStudent() {
    print(self.name)
    print(self.surname)
    print(self.yearOfBorn)
    ...
} 

您只需打印变量:

func printStudent() {
  print("Name: \(self.name), Surname: \(self.surname), Year Of Born: \(self.yearOfBorn)")
} 

我不确定你的意图是什么。也许你在想:

if let foo = foo { ... }
但是,只有当foo是可选的时,才使用这种技术。但是您的属性不是可选的,所以如果let语法是不必要的

不用说,你可以这样做:

func printStudent() {
    print(name)
    print(surname)
    print(yearOfBorn)
    print(mark)
}
FWIW,如果您只是出于自己的目的将其打印出来,您可能希望使您的类符合CustomStringConverable:

这将产生:

或者,如果您同意使用struct-value-type,则根本不需要init方法或CustomStringConverable协议。然后您可以简单地将学生定义为:

struct Student {
    var name: String
    var surname: String
    var yearOfBorn: Int
    var mark: Double
}
然后

let student = Student(name: "Rob", surname: "Ryan", yearOfBorn: 2000, mark: 4)
print(student)
将产生:

学生姓名:Rob,姓氏:Ryan,出生年份:2000,成绩:4.0


对使这段代码成为一个好主意的洞察力的解释将增强您的答案。
struct Student {
    var name: String
    var surname: String
    var yearOfBorn: Int
    var mark: Double
}
let student = Student(name: "Rob", surname: "Ryan", yearOfBorn: 2000, mark: 4)
print(student)