草庐IT

6、Arrays类

全部标签

arrays - Swift的String.count的BigO是什么?

当swift使用String.count时是这样的:O(n)每次我们调用它时,我们都会遍历整个字符串以对其进行计数或O(1),其中swift先前已存储此数组的大小并简单地访问它。 最佳答案 绝对是O(n)。来自SwiftBook:Asaresult,thenumberofcharactersinastringcan'tbecalculatedwithoutiteratingthroughthestringtodetermineitsextendedgraphemeclusterboundaries.Ifyouareworkingwi

arrays - swift:扩展数组可比性

在swift中,4个数组是自动比较的——但它们按顺序检查每个元素。元素1是否匹配元素1,元素2匹配元素2,等等?-这可能是良好的标准行为。但我想针对特定类型的Interval扩展/更改此行为,因此元素的顺序无关紧要,只要两个数组的内容匹配即可。即,如果两个数组都已排序并匹配(使用原始行为),那么应该触发可比性。问题是,通过定义我的新行为,我“覆盖”并丢失了现有行为(理想情况下我希望保留这些行为,这样我可以在两个数组都排序后进行测试)-所以我收到警告“全部”通过此函数的路径将调用自身'。任何想法如何解决请extensionArraywhereElement==Interval{stati

arrays - 如何使用 reduce(into :_:)?) 将数组转换为二维数组

我有一组自定义模型:structEvent{varday:Int//let'sassumeitsIntfornowvartitle:String}作为:letarray=[Event(day:1,title:"PizzaParty!"),Event(day:1,title:"AnotherPizzaParty"),Event(day:2,title:"Cinema-Moive01"),Event(day:2,title:"Cinema-Moive02")]我想将array转换为二维数组,每个数组应该包含同一天的事件;根据数组,结果应该是:[[Event(day:1,title:"Piz

arrays - 带闭包的数组扩展

我有一个包含闭包的数组以及下一种闭包:typealiasFuncT=(()->Void)我想将扩展方法添加到包含我的函数的数组中:extensionArraywhereElement:FuncT{funcexecAll(){self.forEach{(f)inf()}}}编译错误:Type'Element'constrainedtonon-protocol,non-classtype'FuncT'(aka'()->()')如何向包含我的函数的数组添加方法? 最佳答案 约束whereA:B将A限制为classB的子类,或符合以下类型的

arrays - 在 Swift 中访问数组中的项目时遇到问题

letarrayOfDwarfArrays=[["Sleepy","Grumpy","Doc"],["Thorin","Nori"]]vardwarfArray:[String]=[]fordwarfNameinarrayOfDwarfArrays{dwarfArray.append(dwarfName)}我要做的就是访问原始数组的值并将它们附加到一个新的单个数组。但我不断收到此错误:无法将“[String]”类型的值转换为预期的参数类型“String”用最简单的话来说,我做错了什么? 最佳答案 Array.append(_:)需要

arrays - 快速处理稀疏数组

我正在尝试在Swift中创建一个稀疏数组。我不确定问题是出在我的声明中(未检测到语法错误)还是beta2中的错误?我正在尝试将24个类实例的数组声明为可选。然后我可以根据需要填充数组的插槽。这是声明:varusage=WaterUsage?[](count:24,repeatedValue:nil)这可以顺利通过Xcode6beta2编译器。目的是最终得到一个包含24个“WaterUsage”类的数组,所有类都设置为nil。当我尝试设置数组元素时:usage[hour]=usage小时"WaterUsagedoesn'thaveamembernamedsubscript"我也尝试过使用

arrays - 延迟遍历数组 - Swift

我试图遍历一个数组,一次点亮一种颜色,一旦完成遍历每个项目,调用另一个函数来运行。到目前为止我有这个://Delayfunctionfromhttp://stackoverflow.com/questions/24034544/dispatch-after-gcd-in-swift/24318861#24318861funcdelay(delay:Double,closure:()->()){dispatch_after(dispatch_time(DISPATCH_TIME_NOW,Int64(delay*Double(NSEC_PER_SEC))),dispatch_get_mai

arrays - Swift 崩溃 : Array. _ 分配缓冲区未初始化

我有一个集成了我们的SwiftSDK的应用程序的崩溃报告。我能够用符号表示它,但是当我查看堆栈跟踪中本应属于我们的SDK的最后一行代码时,我无法识别它。(堆栈的其余部分在SwiftCore中。混淆名称)ExceptionType:EXC_BAD_ACCESS(SIGSEGV)ExceptionSubtype:KERN_INVALID_ADDRESSat0x0000000a00000008....7libswiftCore.dylib0x00000001007d337c0x1005ec000+19956448libswiftCore.dylib0x00000001007d33d40x10

arrays - 运行 XCTests 时出现 "Ambiguous use of ' MYFUNCTION( )'"错误

我在尝试运行XCTests时遇到几个函数的错误。例如,我有一个简单的数组扩展来提取一个唯一的数组:publicextensionCollectionTypewhereGenerator.Element:Hashable{///Returnsthecollectionwithduplicatevaluesin`self`removed.varunique:[Generator.Element]{get{varseen:[Generator.Element:Bool]=[:]returnself.filter{(element)->Boolinreturnseen.updateValue(

arrays - 编译 Swift 源文件卡在大型数组 reduce-combine + 表达式上

在我的测试中,我习惯于在不同行的数组中编写字符串,例如letjsonString=["{","\"url\":\"http://localhost:8090/rest/api/3\",","\"id\":\"3\",","\"description\":\"Atestthatneedstobedone.\",","\"name\":\"Test\",","\"subtest\":false,","\"avatar\":1","}"].reduce("",combine:+)效果很好,我的数组仍然有145行用于大型测试json字符串。有145行(或者可能更少,没有逐行尝试)构建任务在“编