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语句,所以我看不到三元运算符的任何用途?