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