美文网首页
Swift 中打印实例输出自定义字符串

Swift 中打印实例输出自定义字符串

作者: 张科_Zack | 来源:发表于2021-06-08 15:02 被阅读0次

Swift 中打印实例输出自定义字符串

Swift 中如果直接通过 print 方法 打印一个类的实例多数情况会打印出实例的类名。但是如果我们想打印出具体属性值,则通过执行 CustomStringConvertible 协议并实现其协议计算属性 description 即可。
以下为具体示例代码(示例代码运行在 Xcode PlayGround):

// 1. 首先 申明一个 Person 类
class Person {
    
    enum Gender {
        case Male
        case Female
        case Other
    }
    var firstName = ""
    var lastName = ""
    var fullName: String {
        firstName + lastName
    }
    var gender: Gender = .Other
    var age: Int = 0
    var interest: String = ""
    init(firstName: String,
         lastName: String,
         gender: Gender,
         age: Int,
         interest: String) {
        self.firstName = firstName
        self.lastName = lastName
        self.gender = gender
        self.age = age
        self.interest = interest
    }

}

2. 实例化一个 Person 对象 tom 并打印。
let tom = Person(firstName: "Tom", lastName: "Wang", gender: .Male, age: 25, interest: "basketball")
print(tom)

3. 打印结果为
__lldb_expr_84.Person

4. Person 类执行 CustomStringConvertible 协议并实现 description 计算属性。

class Person: CustomStringConvertible {
    var description: String {
        var genderString = ""
        switch gender {
        case .Female:
            genderString = "Female"
        case .Male:
            genderString = "Male"
        default:
            genderString = "Other"

        }
        return """
            Class Name [Person]
            Property:
            firstName:\(firstName)
            lastName:\(lastName)
            fullName:\(fullName)
            gender:\(genderString)
            age:\(age)
            interest:\(interest)
            """
    }
}

5. 重新运行代码则输出结果为
Class Name [Person]
Property:
firstName:Tom
lastName:Wang
fullName:TomWang
gender:Male
age:25
interest:basketball

相关文章

  • Swift 中打印实例输出自定义字符串

    Swift 中打印实例输出自定义字符串 在 Swift 中如果直接通过 print 方法 打印一个类的实例多数情况...

  • Swift学习笔记

    一、swift 的打印输出a、打印字符串 b、字符串拼接 结果:a、我要打印输出b、hello -- 我是打印的数...

  • Swift学习笔记

    一、swift 的打印输出a、打印字符串 b、字符串拼接 结果:a、我要打印输出b、hello -- 我是打印的数...

  • iOS - Swift自定义print函数

    【Swift】自定义print函数打印出文件名、方法名、行号 输出的效果 输出效果

  • swift基础1 -- 输出

    自定义打印可参考swift自定义打印

  • 基本类型,输出打印,声明

    基本数据类型 简单理解,swift中基本类型名称与Java类似,与OC相比少了NS 输出打印 输出字符串:prin...

  • Swift 自定义Log

    Swift中打印不像OC那样每次打印系统会自己打印出时间和所在类名,所以在swift中要自己封装.自定义Log要用...

  • OC中的反射机制

    不能将 swift 中的自定义类进行反射,系统的类可以 class反射 过类名的字符串形式实例化对象 类名变为字符...

  • 在Swift中自定义Log

    自定义LOG的最终目的:让打印信息在 DEBUG 的环境下打印,在 RELEASE 的环境下不打印 Swift中默...

  • python __str__()和__repr__()自定义类的

    8.1 我们想修改打印实例时候的输出,这样让输出的结果更具有意义 我们可以通过自定义的str()和repr()来实...

网友评论

      本文标题:Swift 中打印实例输出自定义字符串

      本文链接:https://www.haomeiwen.com/subject/ctuzsltx.html