当前位置: 首页 > 面试题库 >

如何快速复制数组末尾?

屠坚壁
2023-03-14
问题内容

从某些索引开始,肯定有一些使用Swift拷贝数组末尾的非常优雅的方法,但是我只是找不到它,所以我以此结束:

func getEndOfArray<T>( arr : [T], fromIndex : Int? = 0) -> [T] {
    var i=0;
    var newArray : [T] = [T]()
    for item in arr {
        if i >= fromIndex {
            newArray.append(item)
        }
        i = i + 1;
    }
    return newArray // returns copy of the array starting from index fromIndex
}

有没有其他功能的更好方法吗?


问题答案:

还有一个…

let array = [1, 2, 3, 4, 5]
let fromIndex = 2
let endOfArray = array.dropFirst(fromIndex)
print(endOfArray) // [3, 4, 5]

这给出了ArraySlice对于大多数目的来说应该足够好的。如果您需要一个真实的Array,请使用

let endOfArray = Array(array.dropFirst(fromIndex))

如果起始索引大于(或等于)元素计数,则会创建一个空数组/切片。



 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 如何在Python中复制文件? (17个答案) 5年前关闭。 使用Windows File Explorer或Mac’s Finder将文件复制到常规右键单击复制>右键单击粘贴的时间至少要长3倍。有没有比Python更快的替代方法?可以采取什么措施来加快文件复制过程?(文件目标位于网络驱动器上……如果有任何区别……)。 编辑后: 这是我最终得到的结果:

  • 问题内容: 我有一个叫Meal的课程 而且我有很多餐: 我想复制该数组,然后在其中一个实例中对Meal实例进行一些更改,而在第二个实例中不更改Meal实例,我将如何对其进行深拷贝? 问题答案: 由于是一个快速数组,所以该语句 将有效地复制原始数组。 但是,由于Meal是一 类 ,因此新数组将包含对原始膳食中相同膳食的引用。 如果您也想复制进餐内容,那么在一个数组中更改进餐不会在另一个数组中更改进餐

  • 问题内容: 在Swift中,当您传递值类型时,对函数说一个数组。制作了数组的副本以供该函数使用。 但是https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ClassesAndStructures.html#//apple_ref/doc/uid/TP400

  • 问题内容: 不久前我问过类似的问题。有人问我怎样才能变成这样的数组: 对此: 但是现在我想把相同的数组变成这个: 假设所有子数组具有相同的长度。 如果您尚未注意到,结果中的前三项就是这三个子数组中的第一项。结果中的第四,第五和第六项是每个子数组的第二项。 如果您仍然不了解,也许这会有所帮助: 原始数组: 结果: 此刻,我有这个: 我认为那不是很花钱。如何快速进行此操作? 为了避免成为XY问题,这就

  • 问题内容: 试图了解如何比较数组。 苹果表示,阵列拷贝背后存在优化。看起来有时(并非总是)结构实际上是否被复制。 那就是 1)==遍历所有数组以执行基于元素的比较吗?(看起来像)->那么在非常大的阵列上的性能/内存使用情况如何? 2)我们确定如果所有元素都相等,==会返回true吗?我对Java字符串的==记忆犹新 3)有没有一种方法可以检查myArray1和myArray2在技术上是否使用相同的

  • 问题内容: 我一直在使用sort()函数,但它混合了相对顺序。 这就是我的代码的样子。 Swift API表示: 排序算法不稳定。不稳定排序可能会更改比较相等的元素的相对顺序。 如何更改此值,以使相对顺序保持与以前相同? 问题答案: 从这里获取:https : //medium.com/@cocotutch/a-swift-sorting- problem-e0ebfc4e46d4