姓名:谢艾芳 学号:16040410073
转自http://www.jianshu.com/p/02ab8c6c1f9f
〖嵌牛导读〗Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序,Swift语言让应用开发更简单、更快、更稳定,确保最终应用有着更好的质量
〖嵌牛鼻子〗Swift基础知识 Swift的编程技巧和方法
〖嵌牛提问〗如何简单学习Swift基本编程语言?
〖嵌牛正文〗
Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序,Swift语言让应用开发更简单、更快、更稳定,确保最终应用有着更好的质量更多了解Swift可以去 《The Swift Programming Language》中文版,这次分享给大家是Swift基础知识,如果你耐心看完本篇文章,并且可以理解Swift的编程技巧和方法,恭喜你可以顺利的使用Swift开发了,已经掌握了Swift的基本语法,想要真正从事苹果开发,还需要在以后的学习中不断探索和挖掘Swift
在接下来的文章中,直接深入主题,不做过多没必要的文字说明,提高大家阅读和吸收能力
一、常量和变量
常量:使用let来定义常量,定义之后不可以修改
变量:使用var来定义变量,定义之后可以修改
在使用过程中建议先定义常量,如果需要修改再修改为变量
import UIKit
let a : Int = 10
var b : Int = 20
b = 30 变量可以修改
// a = 20是错误的,常量是不能修改的
二、数据类型
1、类型介绍
Swift中的数据类型也有:整型/浮点型/对象类型/结构体类型等,整型分为有符号整型和无符号整型,例如Int、UInt,浮点型分为Float和Double
// 定义一个Int类型
var m : Int = 10
// 定义一个Double类型
let n : Double = 3.14
2、类型推导
Swift是强类型的语言,Swift中任何一个标识符都有明确的类型,如果定义一个标识符时有直接进行赋值,那么标识符后面的类型可以省略,Swift会自动根据后面的赋值来决定前面的标识符的数据类型,同时可以通过option+鼠标左键来查看变量的数据类型
Swift会自动识别a是整数,如果之后再赋值给a一个其他类型(比如浮点型)数值,则会报错
var a = 20
// 正确写法
var b = 3.33
b = 6.66
3、基本运算
Swift中在进行基本运算时必须保证类型一致,否则会出错,相同类型之间才可以进行运算,Swift中没有隐式转换
Swift中数据类型的转化,Int类型转成Double类型是Double(标识符),Double类型转成Int类型是Int(标识符)
let a = 12
let b = 3.14
// 错误写法,形同类型之间才可以进行运算
// let c = a + b
// let c = a * b
// 正确写法,转换类型进行运算
let c = Double(a) + b
let d = a + Int(b)
三、逻辑分支
1、分支的了解
分支即if、switch、三目运算符等判断语句,通过分支语句可以控制程序的执行流程
2、if分支语句
和OC不同,Swift判断句可以不加(),在Swift的判断句中必须有明确的真假,不再有非0即真,必须有明确的Bool值,Bool有两个取值:false、true,没有Yes、NO的使用
例1
确定值存在的判断
let a = 12
// 错误写法,在Swift的判断句中必须有明确的真假,不再有非0即真
//if a {
// print("a")
//}
// 正确写法
if a > 9 {
print(a)
}
例2
可选类型的判断,判断如果view有值,则设置背景
let view : UIView? = UIView()
// 错误写法
//if view {
// view.backgroundColor = UIColor.red
//}
if view != nil {
view!.backgroundColor = UIColor.red
}
3、三目运算符
Swift 中的 三目 运算符和 OC 的用法是一样的
var a = 12
var b = 24
var result = a > b ? a : b
println(result)
4、guard的使用
guard是很重要的,在以后的开发中会经常用到,来判断该值是否是可选类型,guard在Swift2.0就出现了,与if语句非常类似,它设计的目的是提高程序的可读性
guard语句必须带有else语句,当条件表达式为true时候跳过else语句中的内容,执行语句组内容,条件表达式为false时候执行else语句中的内容,跳转语句一般是return、break、continue和throw
例1
guard用法说明
guard 条件表达式
else {// 条换语句,走这里的都是错误的,判断不符合要求的
break
}
语句组,正确的执行这里
例2
简单使用guard的用法
func gotToSchool(time:Int) -> Void {
guard time > 6 else {
print("去上学")
return
}
print("不去上学")
}
gotToSchool(time: 5)
5、switch分支
Switch作为选择结构中必不可少的语句也被加入到了Swift中,只要有过编程经验的人对Switch语句都不会感到陌生,苹果对Switch进行了大大的增强,使其拥有其他语言中没有的特性
基本用法和OC用法一致,switch后可以不跟(),case后可以不跟break(默认会有break)
例1
switch对整数的判断
let sex = 0
switch sex {
case 0 :
print("男")
case 1 :
print("女")
default :
print("其他")}
例2
一个case判断中,可以判断多个值,多个值以,隔开
let sex = 0
switch sex {
case 0, 1:
print("正常人")
default:
print("其他")
}
例3
希望出现之前的case穿透,则可以使用关键字fallthrough
let sex = 0
switch sex {case 0:
fallthrough
case 1:
print("正常人")
default:
print("其他")
}
Switch支持多种数据类型
① 浮点型的switch判断
let f = 3.14
switch f {
case 3.14:
print("π")
default:
print("not π")
}
② 支持字符串类型
let m = 5
let n = 10
var result = 0
let opration = "+"
switch opration {
case "+":
result = m + n
case "-":
result = m - n
case "*":
result = m * n
case "/":
result = m / n
default:
result = 0
}
③ switch支持区间判断
开区间:0..<10 表示:0~9,不包括10
闭区间:0...10 表示:0~10
let score = 88
switch score {
case 0..<60:
print("不及格")
case 60..<80:
print("几个")
case 80..<90:
print("良好")
case 90..<100:
print("优秀")
default:
print("满分")
}