gpt4 book ai didi

ios - Swift 4 中 Visual Basic "Mid"函数的等价物是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:36:32 24 4
gpt4 key购买 nike

随着 Swift 4 中处理字符串的新方法,我正在努力思考如何从其他语言(visual basic 等)中编写与 Mid 函数等效的方法,以便

let testString = "0123456"
print Mid(testString, 2,4) // "1234" (or "2345" would work too)

This question 是相同的想法,但那里的一切都早于 Swift 4。如果 jlert 那里的答案仍然是在 Swift 4 中做事的最佳方式,那行得通,尽管看起来已经改变了很多,以至于最佳实践为这样做可能也有变化。

最佳答案

一种方法是结合使用 dropFirstprefix 然后使用 String 将结果转换回 字符串:

let testString = "0123456"

func mid(_ str: String, _ low: Int, _ count: Int) -> String {
return String(str.dropFirst(low).prefix(count))
}

print(mid(testString, 2,4)) // 2345

dropFirstprefix 是宽容的,如果没有足够的字母也不会崩溃。他们只会给出截断的结果。根据您定义函数的方式,这是一个完全可以接受的实现。


另一种方法是使用数组下标。如果这样做,您需要检查输入以避免数组索引超出范围 fatal error :

func mid(_ str: String, _ low: Int, _ count: Int) -> String? {
guard low >= 0,
count >= 0,
low < str.count,
low + count <= str.count
else { return nil }

return String(Array(str)[low ..< low + count])
}

let testString = "abcdefghi"
if let result = mid(testString, 2, 4) {
print(result) // cdef
}

关于ios - Swift 4 中 Visual Basic "Mid"函数的等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46800427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com