在字符串中省略 nil

Omit nil in string

我正在练习 swift,目前正在编写一个简单的函数来显示当天的日程安排。如果 return 语句包含一个值,它应该只包含 busyDay。我希望这会自动完成,但事实并非如此。

func scheduleToday (date: String, day: String, numberOfMeetings: Int?) -> String {
    var meetingMessage = ""
    var busyDay: String!

    if var meetings = numberOfMeetings {
        if meetings > 4 {
           busyDay = "Today is a busy day!"
        }
       meetingMessage = "\(meetings) meetings"
    } else {
        meetingMessage = "no meetings today."
     }

    return "| \(date) - \(day) |   Good morning. \(busyDay) You have \(meetingMessage)."
}

如果 numberOfMeetings 等于或小于 4,则返回的字符串为:

// | 17th of June - Wedensday |   Good morning. nil You have 3 meetings.

您只需在 if 中添加一个 else 语句,将 budyDay 设置为空字符串

if meetings > 4 {
    busyDay = "Today is a busy day!"
} else {
    busyDay = ""
}

如果 numberOfMeetings 等于或小于 4,您可以使用 ternary operator 分配空字符串,您的代码将是:

func scheduleToday (date: String, day: String, numberOfMeetings: Int?) -> String {
var meetingMessage = ""
var busyDay: String!

    if var meetings = numberOfMeetings {

        busyDay = meetings > 4 ? "\(meetings) meetings" : ""
        meetingMessage = "\(meetings) meetings"
    } else {
        meetingMessage = "no meetings today."
    }

    return "| \(date) - \(day) |   Good morning. \(busyDay) You have \(meetingMessage)."
}


let schedule = scheduleToday("1234", "8678678", 3)  // "| 1234 - 8678678 |   Good morning.  You have 3 meetings.""