微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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);

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 {

//跟新指定keyvalue

//如果不存在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)

}

原文地址:https://www.jb51.cc/swift/324612.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐