【问题标题】:Omit nil in string在字符串中省略 nil
【发布时间】:2015-09-02 15:01:25
【问题描述】:

我正在练习 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.

【问题讨论】:

    标签: string swift null return optional


    【解决方案1】:

    您可以在 if 中添加一条 else 语句,将 budyDay 设置为空字符串

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

    【讨论】:

      【解决方案2】:

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

      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.""
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-30
        • 2020-12-14
        • 1970-01-01
        • 2023-01-19
        • 1970-01-01
        • 2010-12-09
        • 1970-01-01
        相关资源
        最近更新 更多