2017-10-18 18:21:14 bddzzw 阅读数 19459
//创建数据的几种方式
var someArray1 = [String](repeatElement("123", count: 3)) //类型是字符串,默认是123 长度是3
var someArray2 = ["123","123","123"]
var someArray3 : [String]=["123","123","123"]

someArray1.count

//使用数据中的某个值
var someVar1 = someArray1[2]
someArray1[1]="234"
someArray1

//数组的追加值

var someArray4=[Int]()//创建一个初始化数据为空的数据
someArray4.count
someArray4.append(10)
someArray4.append(13)
someArray4.append(15)
//数据的遍历 for in
for someVar2 in someArray4
{
    print(someVar2)
}
//遍历数组的下标和值 enumerated 枚举的意思
for (index , item) in someArray4.enumerated()
{
    print("下标\(index) 值为\(item)")
}

//合并数据 +
var someArray5 = someArray1+someArray2
//数组删除某个元素
someArray4.remove(at: 1)
someArray4.remove(at: 1)

someArray4.count

print(someArray4)

//更改数据的某个元素
someArray4[0]=222;
someArray4

//判断数据是否为空
if someArray5.isEmpty {
    print("数组为空")
    
}else{
    print("数组不为空")
}
2016-12-13 14:24:59 sinat_20037505 阅读数 1219

  let array = [1, 3, 4, 5, "", 78, 9,10] as [Any]

        

        for i in array {

            print("元素=\(i)")

        }

        


//        EnumeratedSequence

//        'enumerate' is unavailable: call the 'enumerate()' method on the sequence

//        for (index, value) in EnumeratedSequence(array)

//        {

//            // 这样子遍历,可以得到数组的值和下标

//            print("index:\(index) = \(value)")

//        }

        


        for (index, value) in array.enumerated()

        {

            // 这样子遍历,可以得到数组的值和下标

            print("index:\(index) = \(value)")

        }


2016-12-13 13:50:24 sinat_20037505 阅读数 7020

 // 这里是var变量, 不能是常量

        var array1 = [1, 2, 3, 4, 5]

        // 这样子就修改了第一个元素

        array1[0] = 9

        

        print(array1)

        

        print("------------>")

        // 删除最后一个

        array1.removeLast()

//        array1.removeAtIndex(1)

//        array1.removeAll()

        

        // 可以保持容量不变

        array1.removeAll(keepingCapacity: true)

        

        print(array1)

        print(array1.count)

        print("capacity==\(array1.capacity)")


2019-01-11 13:01:17 MChuajian 阅读数 96

总所周知,Swift是强类型语言 所以其数组中元素都必须是同一个类型的 

而OC中的数组是可以存放任意Object-C对象的 如下 凡是OC对象都要加@

NSString *str=@"字符串";

 NSArray*OCArray =@[str,@1];

 

下面来看看Swift数组的声明

//普通声明方法

let nums = [1,2,3,4,5]

let string = ["1","2","3","4","5"]

//显示类型声明

let emptyArray1 : [Int] = []

let emptyArray2 : [String] = []

let emptyArray3 : [Character] = []

//显示Array类型声明

let Arrayofnum : Array<Int> = [1,2,3,4,5]

let ArrayofStr : Array<String> = ["1","2","3","4","5"]

//调用构造函数

let arr =[Int]()

let arr1 = [Int](repeatElement(3, count: 3))

let arr2 = Array<Character>(repeatElement("?", count: 3))

 

let emptyArray4 : Array<Int> = []

// 直接写[]会桥接为NSArray,除非特殊情况,不要这么做

// swift 2: var emptyArray5 = []

// swift 3 不支持在没有显式地声明数据类型的情况下使用[]。如果想创建一个空的NSArray,则需要声明数据类型

let OCArr : NSArray = []

2017-10-18 18:23:24 bddzzw 阅读数 10274
/*
Swift 中的闭包有很多优化的地方
1 根据上下文推断参数和返回值的类型
2 从单行表达式闭包中隐式返回 可以省略return
3 可以使用简化的参数如 $0 $1 意为从0或者1开始
4 提供了尾随闭包的语法
*/
//语法   parameters参数 return 隐藏了
//{(parameters) -> return type in
//    parameters
//}
//最简单的闭包//省略in的
let b = {
    print("这也是闭包")
}

//用变量记录函数 (带参数的闭包)
//带有参数的闭包
//参数返回值 实现代码  {形参->返回值 in 代码}
//带参数待返回值的闭包
let countNum = {(num1:Int,num2:Int)->Int in
    return num1+num2;
}
let count1 = countNum(2,3)


//闭包的应用场景

/*异步执行完成回调  控制器之间的回调  自定义视图的回调*/

/*  以下代码需要在项目中的.Swift文件中完成
override func viewDidLoad() {
super.viewDidLoad()
loadData { (result) in
print("获取json信息\(result)")
}
// Do any additional setup after loading the view, typically from a nib.
}
func loadData(completion: @escaping (_ result: [String])->()) -> () {
DispatchQueue.global().async {
print("耗时操作\(Thread.current)")
Thread.sleep(forTimeInterval: 1.0);
let json=["12","23","34"]
DispatchQueue.main.async(execute: {
print("主线程\(Thread.current)")
completion(json)
})
}
}
结果为:耗时操作<NSThread: 0x600000277000>{number = 3, name = (null)}
主线程<NSThread: 0x604000075a80>{number = 1, name = main}
获取json信息["12", "23", "34"]
*/

//闭包表达式
let names = ["s","b","e","h","f"]

func backwards(a1:String,a2:String)->Bool{
    return a1<a2;
}
// public func sorted(by areInIncreasingOrder: (Element, Element) throws -> Bool) rethrows -> [Element]
var result = names.sorted(by:backwards)
print(result)

//参数名缩写
///以上代码还可以  Swift自动内联函数提供了参数名称缩写功能,您可以直接通过$0,$1,$2来顺序调用闭包的参数。
var result1 = names.sorted(by:{$0<$1})
print(result1)

//作为一个函数接受两个String类型的参数并返回Bool类型的值Swift可以自动推断出您想使用大于号的字符串函数实现:
//运算符函数
var result2 = names.sorted(by:<)
print(result2)

//尾随闭包
//例子1  尾随闭包是一个书写在函数括号之后的闭包表达式,函数支持将其作为最后一个参数调用。

var result3 = names.sorted(){$0<$1}
print(result3)



//例子2
//此时点回车函数会变成中括号的形式 也就是说如果函数的最后一个参数是闭包,函数的参数可以提前结束
//        最后一个参数直接使用{}来包装闭包的代码
//        loadData1(completion: <#T##([String]) -> ()#>)
//以下两段代码相同只不过一个是使用尾随闭包的写法
/*func loadData(completion:@escaping (_ result:([String])->())->()){
    DispatchQueue.global().async {
        print("耗时操作\(Thread.current)")
        Thread.sleep(forTimeInterval: 1.0);
        let json=["12","23","34"]
        //以下两段代码相同只不过一个是使用尾随闭包的写法
        DispatchQueue.main.async{
            print("主线程\(Thread.current)")
            completion(json)
        }
        DispatchQueue.main.async(execute: {
            print("主线程\(Thread.current)")
            completion(json)
        })
        
    }
}
*/


良言一句三冬暖,恶语伤人六月寒。无论工作还是生活,都不要拿脾气当做与他人博弈的武器。即使侥幸一时赢了,最终也只是两败俱伤。一言一语间,完成的是沟通,体现的是修养。或许我们不能成为优秀的别人,却完全可以做更好的自己。

swift 2.0 数组

阅读数 375

没有更多推荐了,返回首页