美文网首页
swift -第二天

swift -第二天

作者: 夢若繁星 | 来源:发表于2017-09-22 16:25 被阅读13次

一 : 字符串的使用 : 

1>字符串的定义

1.1 不可变字符串的定义

1.2 可变字符串的定义

2>获取字符串的长度

3>字符串的拼接

3.1字符串之间的拼接

3.2字符串和其他标识符之间的拼接"\(标识符)"

3.3字符串拼接过程中的格式化:  string(format:"%d:%d",参数)

4>字符串的截取

4.1 将String 转成NSString 在进行截取(推荐)

4.2 直接使用String中的方法进行截取 .String.Index

二 : 数组的使用

1>数组的定义

1.1定义不可变数组 使用 let 修饰  let array = ["2","3","4"]

1.2定义可变数组  使用var 修饰  var arrayM = [String]()

2>对可变数组的操作 : 增删改查

2.1增 : arrayM.append("ml")

2.2删 :arrayM.remove(at: 0)

2.3改 :arrayM[0] ="lm"

2.4 获取 : let item =arrayM[1]

3>对数组的遍历

3.1获取数组的长度 

 let count =array.count

3.2 数组的遍历(i/item/index - item)

 for i in 0..<count {
print (array[i])

}

for item in array {

 print(item)

}

for (Index,item) in array.enumerated () {

print (index)

print(item)

}

3.4 数组的组合 : 如果两个数组中存放的是相同的元素,那么在swift中可以对两个数组进行相加,直接合并

三: 字典的使用

1>字典的定义
1.1  不可变字典,用 let 修饰  let dict : [String : Any] = ["name":"malong","age": 22,"height": 1.73]

1.2 可变字典,用var 修饰  var dictM = [String : Any]() 

2>对可变字典的基本操作 : 增删改查

2.1 增 : 

dictM["name"] ="ml"

dictM["age"] = 22

dictM["height"] = 1.73

2.2 删

dictM.removeValue(forKey:"height")

2.3 改

dictM["name"] ="lm"

dictM.updateValue("malong", forKey:"name")

2.4 查

dictM["age"]

3> 遍历字典

3.1 遍历所有的key

for key in dict.keys {
print(key)

}

3.2 遍历所有的values

for value in dict.values {
print(value)

}

3.3 遍历所有的key/value

for (key,value) in dict {
 print(key,value)

}

4> 字典合并

var  dict3 : [String:Any] = ["name":"why","age": 18]

letdict2 : [String:Any] = ["height": 1.88,"phoneNum":"+86 110"]

for(key, value)indict2{

dict3[key] = value

}

print("%@",dict3)

四 : 元祖的使用 : 对比数组和字典来说更加直观取出数据更加方便 

letinfo = ("malong","123","1.23")

letname1 =info.0

letage1 =info.1

letheight1 =info.2

letinfo2 = (name :"malong", age :"123", height :"1.31")

info2.name

info2.age

info2.height

五 : 可选类型 

1> 可选类型的定义 

1.1 var name :<optional>String = nil

1.2 var name : String? = nil

2> 可选类型的赋值

name = "malong"

name = Optioal("malong")

3> 可选类型的取值

print(name)

4> 强制解包

print(name!) 

注意:必须强制解包必须保证该值不为nil,如果为nil强制解包就会崩溃

5> 可选绑定 : (固定格式) 该语法用于可选类型,使我们使用起来可选类型更加方便

5.1 判断name是否有值,如果没有值,则不执行{}

5.2 如果name有值,那么系统会自动对可选类型进行解包,并且讲解包后的结果赋值给前面的变量

if let tempName = name {
 print(tempName)

}

if let name = name {
 print(name) 

}

六 可选类型的应用 :只要有一个类型可能为nil,那么这个标识符的类型一定是一个可选类型

1> 将字符串转成Int类型

let m : Double = 2.44

let n = Int(m)

let str : String = "123"

let num :Int? = Int(str)

2> 根据文件名称:123.plist,获取该文件的路劲

let path : String? = Bundle.main.path(forResource:"123.plist", ofType:nil)

3> 将字符串转成NSURL ,如果字符串中有中文,那么就转化不成功返回结果nil

let url = URL(string : "http://www.baidu.com")

4> 从字典中取出元素

let dict : [String : Any] = ["name" : "malong","age" : 12]

let value = dict["nene"]

七 : 类型转换

1> 之前的as使用

let str = "www.baidu.com"

(str as NSString),substring(to:4)

2> as? as! 的用法

let dict : [NSString : Any] = ["name" : "malong" , "age" : 12]

2.1 as?的用法 : as? 转成的类型是一个可选类型,系统会自动判断tempName是否可以转成String,如果可以转成就获取字符串,如果转化不成功,返回nil

let tempName = dict["name"]

let name = tempName as? String

if let name = name {
 print(name)

}

if  let name = dict["name"] as? String {
print(name)

}
2.2 as! 的用法 : 通过as! 转成具体类型,注意:!如果转化不成功,则程序会直接崩溃. 建议:!如果确定能转化成功,在用as!,平时不建议使用

let tempName1 = dict["name"]

let name1 = tempName1 as! String

八 函数的使用

1> 没有参数,没有返回值的函数

func about() ->Void {
print(hahahha)

}

2> 有参数没有返回值的函数

func today1(day :String) {

print("今天星期:\(day)")

}

today1(day:"五")

3> 没有参数有返回值的函数

func attention() ->String{

return"前方高能!!"

}

let  attentionMsg =attention()

4> 有参数有返回值的函数

funcjian (num1 :Int,num2 :Int) ->Int{

returnnum1 - num2

}

letresult1 =jian(num1: 39, num2: 21)

print(result1)

九  函数的其他用法

1>内部参数,外部参数

1.1 内部参数 : 在函数内部能看到标识符的名称, 该标识符就是内部参数

1.2 外部参数: 在函数外部能看到标识符的名称, 该标识符就是外部参数

默认情况下, 所哟的参数都是内部参数,也都是外部参数

修改外部参数: 在标识符钱加上外部参数名称即可

如果不希望显示外部参数,可以在标识符前加上_

func sum1 (_n :Int,_m :Int) ->Int{//在前面加_ 调用的时候就不显示参数的名称

return  n + m

}

let result1 = sum1(23,33)

2>可变参数: 参数的个数是可变的

func sum1(_ nums : Int...) -> In t{

var total = 100

for i   in nums {

total -= i

}

returntotal

}

sum1(30, 20,20,10,11)

3>默认参数: 可以给摸一个参数提供一个默认值

4>指针参数:inout 

varm :Int= 20

varn :Int= 30

func swapNum(num1 :inout Int, num2 :inout  Int) {

lettemp = num1

num1 = num2

num2 = temp

}

swapNum(num1: &m, num2: &n)

print("m:\(m) n:\(n)")

相关文章

  • swift学习第二天

    今天是学习swift的第二天,主要讲的是OC代码迁移到swift当中 一.懒加载格式:lazy var变量名:变量...

  • Swift3.0更新之各种坑

    长期更新,记录从Swift2.3迁移到Swift3.0苹果公司给的大坑。 中秋节第二天,打开电脑,马丹,Xcode...

  • iOS 12 开发者笔记 @WWDC 18, Day 2

    WWDC 第二天,为大家带来 What's new in Swift 以及 What's new in Cocoa...

  • swift -第二天

    一 : 字符串的使用 : 1>字符串的定义 1.1 不可变字符串的定义 1.2 可变字符串的定义 2>获取字符串的...

  • swift第二天

    前言 今天的swift小练习比较简单, 主要目的是如何快速熟悉storyboard拖线后的代码风格. 下面我们来看...

  • swift - 第二天

    所有的属性值、成员变量都必须初始化 view连接到Controller中的属性,带了 ‘ ! ’ 则不用初始化 ...

  • Swift第二天

    接着Swift初见 自己是基于Object-C语言的iOS开发者,Swift与Object的语法虽然不同,但是在i...

  • 中文版链接

    中文版链接swift-4.0swift-3.1swift-3.0swift-2.2swift-2.1swift-2.0

  • Swift -- 中文版两大官方文档汇总(http://www.

    欢迎使用Swift (一)关于Swift--About Swift (二)Swift 初见--A Swift To...

  • swift String to Size

    Swift 4 Swift 3 Swift 2.3

网友评论

      本文标题:swift -第二天

      本文链接:https://www.haomeiwen.com/subject/afposxtx.html