【问题标题】:Check if passed argument value is nil or empty检查传递的参数值是 nil 还是空
【发布时间】:2019-05-30 12:50:00
【问题描述】:

我正在尝试重写我之前写给 Swift 的 C# 代码。

public static string Right( string value, int length)
{
    if (String.IsNullOrEmpty(value)) return string.Empty;
    return value.Length <= length ? value : value.Substring(value.Length - length);
}

我无法快速有效地编写 if 语句。

【问题讨论】:

标签: c# swift


【解决方案1】:

Swift你可以写,

func right(value: String, length: Int) -> String {
    if value.count <= length {
        return value
    } else {
        let index = value.index(value.startIndex, offsetBy: value.count-length)
        return String(value[..<index])
    }
}

无需检查empty string。它将被 else condition 本身覆盖。

示例:

right(value: "abcdefgh", length: 3) //abcde

【讨论】:

    【解决方案2】:

    就这么简单:

    func right(value: String, length: Int) -> String {
        guard value.count > length, length > 0 else { return value }
        return String(
            value.dropLast(length) // we just drop `length` number of elements from the end
        )
    }
    

    【讨论】:

      【解决方案3】:

      使用prefix 和 ?: 作为单行符

      func right(value: String, length: Int) -> String {
          return value.count > length ? String(value.prefix(value.count - length)) : value
      }
      

      【讨论】:

        猜你喜欢
        • 2012-11-16
        • 1970-01-01
        • 1970-01-01
        • 2017-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-04
        相关资源
        最近更新 更多