Swift 用三元运算符重构

Swift 用三元运算符重构,swift,if-statement,methods,Swift,If Statement,Methods,下面是我的代码,它实际工作起来与我预期的一样: static func imageName(for page: Int, isThumbnail: Bool) -> String { return isThumbnail ? "\(page)_thumb.jpg" : "\(page).jpg" } static func writeImageFile(with data: Data, issue: Issue, page: Int) throws -> URL {

下面是我的代码,它实际工作起来与我预期的一样:

static func imageName(for page: Int, isThumbnail: Bool) -> String {
    return isThumbnail ? "\(page)_thumb.jpg" : "\(page).jpg"
}

static func writeImageFile(with data: Data, issue: Issue, page: Int) throws -> URL {
    let path = MediaFileManager.issueImagesDirectoryURL(issue: issue)
    let imagePath = path.appendingPathComponent("\(imageName(for: page, isThumbnail: false))")
    let thumbPath = path.appendingPathComponent("\(imageName(for: page, isThumbnail: true))")
    try data.write(to: imagePath)
    try data.write(to: thumbPath)

    return path
}
我想要同样的结果: -创建两个附加到主路径的不同常量 -将2个数据写入这2个路径


是否可以重构writeImageFile()?

首先,应用于字符串的字符串插值是冗余的

如果要根据
isThumbnail
写入数据(一次),则必须将其添加为参数

static func writeImageFile(with data: Data, issue: Issue, page: Int, isThumbnail: Bool) throws -> URL {
    let url = MediaFileManager.issueImagesDirectoryURL(issue: issue)
    let imageURL = url.appendingPathComponent(imageName(for: page, isThumbnail: isThumbnail))
    try data.write(to: imageURL)
    return url
}

你到底想实现什么?代码中没有if/else语句,所以我看不到三元运算符的任何用途?