如何在Swift中类内部的函数中使用类名
为戈尔的名字道歉,但我真的想不出任何其他的表达方式 我是一个敏捷的傻瓜,我正在尝试做一个愚蠢的小程序来练习 无论如何,我有一个超类,我计划创建几个其他类,从中插入函数,但重写属性。我有一个结合了所有类的属性的函数,但我希望能够在函数中使用类名,而我完全不知道如何真正做到这一点 我搜索了文件,但没有找到任何结论。如果可能的话,我还希望在不更改类名的情况下将类名改为小写。也许(以我对Python的模糊知识)类似于.lower 我的尝试如下:如何在Swift中类内部的函数中使用类名,swift,class,object,Swift,Class,Object,为戈尔的名字道歉,但我真的想不出任何其他的表达方式 我是一个敏捷的傻瓜,我正在尝试做一个愚蠢的小程序来练习 无论如何,我有一个超类,我计划创建几个其他类,从中插入函数,但重写属性。我有一个结合了所有类的属性的函数,但我希望能够在函数中使用类名,而我完全不知道如何真正做到这一点 我搜索了文件,但没有找到任何结论。如果可能的话,我还希望在不更改类名的情况下将类名改为小写。也许(以我对Python的模糊知识)类似于.lower 我的尝试如下: class FoodItem { var ingr
class FoodItem {
var ingredientOne: String = "Default ingredient."
var ingredientTwo: String = "Also a default ingredient."
var ingredientThree: String = "Another default ingredient."
func returnStatement() -> String {
return "A classnamegoeshere is made from \(ingredientOne), \(ingredientTwo), and \(ingredientThree)"
}
}
使用type(of:)
获取self
的类型。在这样的字符串插值段中使用时,它将转换为类型名称的字符串
表示形式
return "A \(type(of: self)) is made from \(ingredientOne), \(ingredientTwo), and \(ingredientThree)"
不过,我会用不同的方式来处理这个问题:
protocol FoodItem {
var ingredients: (String, String, String) { get set }
}
extension Fooditem {
func returnStatement() -> String {
return "A \(type(of: self)) is made from \(ingredients.0), \(ingredients.1), and \(ingredients.2)"
}
}
例如,Swift 3代码在中。要使类名小写,可以创建一个字符串var并将其小写。类似于
let className=“\(类型(of:test))”。小写()。然后在上面的返回语句中使用它。