Swift基础部分

来源:互联网 发布:pptv聚力网络电视2017 编辑:程序博客网 时间:2024/05/22 00:48

  Swift是一种基于IOS,OS X和watchOS平台的新的编程语言,2016.9已经更新到3.0版本,3.0版本基于前面2个版本做了许多改变(新增或变更或是替换)。

  我是一个从c、c++过度到Object C的程序猿,目前Swift开发的IOS程序渐渐多了起来,有幸可可以自学一下Swift 3.0,所有语言差异都基于c、c++、o-c做区别,此次学习记录参考资料来源于:

http://www.swift51.com/swift3.0/chapter1/01_swift.html,希望能给帮到有兴趣的小伙伴们。


1.新的数据类型-元组(值类型)

//元组

let httpResponse = (404,"not found")     //定义初始化一个网络请求返回值元组

let (statusCode, statusMessage) =httpResponse

print("The status code is\(statusCode)")

print("The status message is\(statusMessage)")

print("The status code is\(httpResponse.0)")

print("The status message is\(httpResponse.1)")

//如果你只需要一部分元组值,分解的时候可以把要忽略的部分用下划线(_)标记

let (justTheStatusCode, _) = httpResponse

print("The status code is\(justTheStatusCode)")


2.可选类型 

/*可选类型  用法:强制解析 !   可选绑定

使用可选类型(optionals)来处理值可能缺失的情况。可选类型表示:有值,等于 x*/

let possibleNumber = "123"

let convertedNumber = Int(possibleNumber)


/*因为该构造器可能会失败,所以它返回一个可选类型(optionalInt,而不是一个 Int。一个可选的 Int 被写作 Int? 而不是 Int。问号暗示包含的值是可选类型,也就是说可能包含 Int值也可能不包含值。(不能包含其他任何值比如 Bool 值或者 String 值。只能是 Int或者什么都没有。)*/

/*Swift nil Objective-C中的 nil并不一样。在 Objective-C中,nil是一个指向不存在对象的指针。在 Swift中,nil不是指针——它是一个确定的值,用来表示值缺失。任何类型的可选状态都可以被设置为 nil,不只是对象类型。*/


/*有时候在程序架构中,第一次被赋值之后,可以确定一个可选类型总会有值。在这种情况下,每次都要判断和解析可选值是非常低效的,因为可以确定它总会有值。这种类型的可选状态被定义为隐式解析可选类型*/

let possibleString: String? = "An optional string."

let forcedString: String =possibleString!//需要惊叹号来获取值

另一种表示:

let assumedString: String! = "An implicitly unwrapped optional string."

let implicitString: String = assumedString //不需要感叹号


3.空合运算符

//空合运算符(a ?? b)将对可选类型 a进行空判断,如果 a包含一个值就进行解封,否则就返回一个默认值b, a != nil ? a! : b

let defaultColorName = "red"

var userDefinedColorName: String?   //默认值为 nil

var colorNameToUse = userDefinedColorName ?? defaultColorName


4.区间运算符

//闭区间运算符(a...b)定义一个包含从 a b(包括 a b)的所有值的区间

//半开区间(a..<b)定义一个从 a b但不包括 b的区间

for index in1...5{

    print("\(index),\(colorNameToUse)")

}

let names = ["Anna","Alex","Brian","Jack"]

let count = names.count

for i in0..<count {

    print("\(i +1) 个人叫\(names[i])")

}


5.字符串处理

//遍历字符串

for character in"Dog!

0 0
原创粉丝点击