检查传递的参数值是否为nil或为空

时间:2019-05-30 12:50:01

标签: c# swift

我试图重新编写我以前写给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语句。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

可以做到这么简单:

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
    )
}

答案 2 :(得分:0)

使用prefix和?:作为单行纸

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