• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

swift 集合类型(一)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

基本的数组结构Array:

 

var shoppingList: String[] = ["Eggs", "Milk"]

 

这个shoppingList和传统意义上的数组是没区别的。但它却又可以这样:

println("The shopping list contains \(shoppingList.count) items.")

shoppingList.count的这个count是T(继承自ArrayType)的属性,可以获取当前数组的长度。

同时,shoppingList还可以通过 append(只能添加单个元素)或者+=(可添加一个或者多个元素)运算符添加新元素。

 var shoppingList: String[] = ["Eggs", "Milk"]
        shoppingList.append("Banana")
        shoppingList += "Apple"
        shoppingList += ["WaterMelon","Tomato"]

也可以直接通过下标来替换一个或者多个元素

        var shoppingList: String[] = ["Eggs", "Milk"]
        shoppingList.append("Bananas")
        shoppingList += "Apples"
        shoppingList += ["WaterMelons","Tomatos","Chocolate"]
        shoppingList += ["",""]
        shoppingList[7...8] = ["Cola","Cookies"]

  

可以通过下标来获取指定位置的一个或者多个元素

var firstElement = shoppingList[0]
var mulElements = shoppingList[4...6]

 

在指定位置插入新元素

shoppingList.insert("Cheese",atIndex: 4)
        for item in shoppingList{
            println(item);
        }

移除元素有2种方法,1,直接移除数组最后一个元素。 2,移除指定下标位置的元素

        shoppingList.removeLast()
        for item in shoppingList{
            println(item);
        }
        shoppingList.removeAtIndex(0)
        for item in shoppingList{
            println(item);
        }

如果想移除数组中的某个指定的元素,没有直接的方法。只能遍历并移除:

        for (index,value) in enumerate(shoppingList){
            println("Item \(index+1): \(value)")
            if(value == "Bananas"){
                shoppingList.removeAtIndex(index);
            }
        }

其实这个方法按微软的说法的话,是不够严谨的。removeAtIndex方法执行后,返回值是一个T类型。应该是shoppingList的一个copy,应该是不可以影响到当前操作的数组的。我跟踪了一下,事实上这个方法目前是会影响到当前的数组的。

 

数组初始化

可以直接初始化指定数据类型的空数组,留着后面再填充数据。

var someInts = Int[]()
println("someInts is of type Int[] with \(someInts.count) items.")

可看到输出的结果为0个items在数组中。

也可以直接指定大小的空数组,同时指定初始化数据:

var threeDoubles = Double[](count:3, repeatedValue:0.0)
println("threeDoubles is of type Double[] with \(threeDoubles.count) items")

可以看到,当前数组中有3个值都是0.0的item. 这个跟T类型的构造函数有关:

init(count: Int, repeatedValue: T)

  

总结:

1)swift的数组是通过[]来定义数据类型,()来指定数据的。

2)可以通过insert,append和+=操作符添加数组

3)也可以通过构造函数init(count: Int, repeatedValue: T)来初始化指定大小和初始值的数组

4)可以通过removeLast和removeAtIndex来移除指定的item

5)可以通过下标来获取或者设置指定的item

 

        var shoppingList: String[] = ["Eggs", "Milk"]
        shoppingList.append("Bananas")
        shoppingList += "Apples"
        shoppingList += ["WaterMelons","Tomatos","Chocolate"]
        shoppingList += ["",""]
        shoppingList[7...8] = ["Cola","Cookies"]
        var firstElement = shoppingList[0]
        var mulElements = shoppingList[4...6]
        shoppingList.insert("Cheese",atIndex: 4)
//        for item in shoppingList{
//            println(item);
//        }
        shoppingList.removeLast()
//        for item in shoppingList{
//            println(item);
//        }
        shoppingList.removeAtIndex(0)
//        for item in shoppingList{
//            println(item);
//        }
        for (index,value) in enumerate(shoppingList){
            println("Item \(index+1): \(value)")
            if(value == "Bananas"){
                shoppingList.removeAtIndex(index);
            }
        }
        
        var someInts = Int[]()
        println("someInts is of type Int[] with \(someInts.count) items.")
        
        var threeDoubles = Double[](count:3, repeatedValue:0.0)
        println("threeDoubles is of type Double[] with \(threeDoubles.count) items")


        //println("The fruits are \(mulElements.count) at position 4-6 in shopping list")
        //println("The shopping contains \(shoppingList.count) items")

  

 

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap