您的位置:首页 > 移动开发 > Swift

Swift基础语法&&入门教程_字符串,数组_字典

2016-02-21 23:24 441 查看
1,字符串
 在swift中,字符串默认的类型是String,而不是NSString
 在swift中是一个结构体,效率高,支持快速遍历
 NSString是继承自NSObject,是一个OC对象,不支持快速遍历

//对字符串的快速遍历
var string:String = "hello playground,大家好"
for cin string {
    print(c)
}

//字符串的拼接
let string1 = string +"hello"
let i =100
let view = UIView()
view.backgroundColor = UIColor.redColor()
print(string1 + "\(i) \(view.backgroundColor)")

let frame = CGRectMake(100,100, 100, 100);
print("区域\(frame)")

//格式拼接: [NSSting stringWithFormat:]
let string2 = String(format:"%02d:%02d:%02d", arguments: [1,5,10])

//取子串范围使用 String
和 Range  ->取子串的时候
let myString ="hello"
//在myString中取出前三个字符
let subString = myString.substringWithRange(Range<String.Index>(start: advance(string.startIndex,0), end: advance(string.startIndex, 3)))

使用推荐:在swift中如果要结合range一起操作,建议先把私服穿转换成NSString,再进行处理,如下
let myString2:NSString ="hello"
myString2.substringWithRange(NSMakeRange(0,3))

2,数组
使用中括号[]来定义
定义的数组类型是[String],表示数组中只能存放字符串
在OC中数组分可变和不可变,
在swift中: let不可变,var可变
let array1 = ["zhangsan","lisi"]

//数组的遍历
for ain array1 {
    print(a)
}

var array2 = ["aaa","bbb"]
//添加元素(不可变的数组无法添加元素)
array2.append("ccc")

//如果定义数组时,指定的对象类型不一致,则其类型是[NSObject]
var array3 = ["zzz",11,"123"]
for ain array3 {
    print(a)
}

在OC中,如果需要向数组中加数字,需要转换成NSNumber
在swift中,可以直接添加 (万物皆对象)
同常在开发时,不建议在数组中使用不同类型的数据,使用起来不太方便,可能需要转换,如下
for ain array3 {
    let string ="hi \(a)"
    print(string)
}

数组的定义和初始化

//定义,但是没有初始化
var array4:[String]
//初始化一个字符串的可变数组
array4 = [String]()
array4.append("hello")
array4.append("world")
print(array4.capacity)//容量为2

//删除数据,keepCapacity,是否保持容量
array4.removeAll(keepCapacity:true)
print(array4.capacity)

//不论是否保存容量,再次追加元素的时候,每次超过容量,容量直接在现有容量的基础上
*2
//在实际开发中,绝大多数,数组的容量是固定的,需要注意保持容量,以及声明的时候,指定容量
for iin 0...10 {
    array4.append("\(i)")
    print("\(array4):\(array4.capacity)")
}

3,字典
定义一个字典,任然使用方括号[]
以下代码定义的字典类型是[String:NSObject]
在目前swift版本中,定义字典通常使用[String:NSObject]
//大多数情况下,key的类型是固定的
let dict = ["name":"zhangsan","title":"boss","age":18]

//遍历字典(注意:k,v随便写,前面是键key,后面是值value)
for (k,v)in dict {
    print("\(k) -- \(v)")
}

可变字典:var
不可变字典:let

//定义字典,并且实例化
var dict1 = [String:NSObject]()

//设置内容
dict1["name"] = "laowang"
dict1["age"] =80
print(dict1)

//注意:如果key已经存在,设置数值时,会覆盖之前的值,字典的键不会重复
dict1["name"] = "abc"
print(dict1)

//删除内容(根据键删除值)
dict1.removeValueForKey("age")
print(dict1)

//合并字典
var dict2 = ["title":"boss"]

//利用循环来进行合并
//遍历dict2
for (k,v)in dict2 {
    //跟新指定key的value
   
//如果不存在key,会新建,并且设置数值
    //如果key存在,会覆盖值
    dict1.updateValue(v, forKey: k)
}
print(dict1)
//dict2de
值不变
print(dict2)

4,函数
定义函数
OC的风格: - (void)函数名(参数){}
swift函数定义格式
func函数名(参数列表) ->返回值{//代码实现}
"->"是swift特有的,表示前面的执行结果输出给后面的

func sum(a:Int,b:Int) ->Int {
   return a + b
}

sum(10,20)

//强制填写参数,使用#,可以在调用函数的时候,增加参数
//会让代码提示更直观,符合OC程序员的习惯
func sum1 (#a:Int,#b:Int) -> Int {
   return a + b
}
sum1(a:10, b: 20)

如果没有返回值,"->返回值"可以省略,或者也可以写成下面的格式:
-> Void
-> ()

func demo (a:Int) -> (){
    print(a)
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息