Swift 我需要帮助,使斯威夫特与功能
Swift 5.0中有此作业: 课程介绍如下。在该类的主体中,创建一个函数,该函数将为特定对象打印该类的参数。创建这样一个类Student对象,调用此函数并在屏幕上显示结果: 职业班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:
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)