我正在寻找在Swift 4中提取子数组并遇到意想不到的困难。
以下平凡的案例按预期工作:
let array1 = ["a", "b", "c","x","y","z"]
array1[2...3] // returns ["c","x"], as it should
Run Code Online (Sandbox Code Playgroud)
以及以下变体:
let m=2
let n=3
array1[m...n] // returns ["c","x"], as it should
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试围绕此功能创建函数,则会收到错误消息ambiguous subscript with base type 'Array<Any>' and index type 'CountableClosedRange<Int>':
func arrayTake(arrayIn: Array<Any>) -> Array<Any> {
return arrayIn[2...3]
} // no good
Run Code Online (Sandbox Code Playgroud)
当然,下面的形式(实际上更接近我想要做的)以相同的错误消息失败:
func arrayTake(m: Int, n: Int, arrayIn: Array<Any>) -> Array<Any> {
return arrayIn[m...n]
} // no good
Run Code Online (Sandbox Code Playgroud)
我在这里看到了其他有关模棱两可的下标的问题,但无法将那里的答案转化为解决我的问题的方法。任何指导将不胜感激。
给定一个未知格式的字符串,但预计包含已知数量的整数,我想将这些整数提取为a List或如果整数的数量与预期的不匹配则返回错误.
因此,例如,如果字符串读取'This is a test 1 2 3 55',并且预期的整数数量是4,则应该返回[1, 2, 3, 55].
如果字符串读取'(1 2 3 55)',并且预期的整数数是6,则应返回错误.
在其他语言中,我会在所有空格或标点符号中分成单词,测试每个单词的数字状态,并抛弃未通过测试的单词,但我是Python的新手并且对是否有更好的方法感到好奇.