---------------------Swift简介----------------------
一、神马是Swift?
1、Swift 是苹果公司2014 年在WWDC(苹果开发者大会)上发布的全新编程语言。
2、Swift在天朝翻译为“雨燕”,其Logo如下图
3、Swift跟Objective-C一样,可以用于开发iOS、Mac应用程序。
4、苹果公司从2010年7月开始设计Swift语言,耗时4年打造。(据说其核心代码是由一个人写的)
二、Swift的语法特点
1、从它的语法中能看到Objective-C、JavaScript、C#、Python等语言的影子。其借鉴了Objective-C、JavaScript、C#、Python等语言的优点。
2、同时具备编译型语言的高性能和脚本语言的灵活交互性。(编译型语言:就是要保证我们所写的代码全部编译通过,程序才能执行;脚本语言:你写的代码对一行执行一行,比如你写了10行,第9行有Bug,那么前8行是可以执行成功的)
3、苹果公司为什么要设计Swift语言?其目的是想取代Objective-C,Swift言语让编程更简单,让生活更美好。
三、使用Swift语言进行开发的条件是什么?
1、Xcode版本>=6.0,Mac系统版本>=10.9.3
2、Swift语言自从发布之后,备受关注。据说发布当天Xcode6 beta 下载量突破1400万次,官方电子书教程下载量37万次。
3、Swift的首席架构师:Chris Lattner
LLVM 项目的主要发起人与作者之一
Clang 编译器的作者
他现在是苹果公司『开发者工具』部门的主管
领导 Xcode、Instruments 和编译器团队
从 2010 年 7 月开始主导开发 Swift 编程语言
Swift的大部分基础架构均由他一人完成
综上所述, Swift是由牛叉的公司牛叉的人设计的牛叉编程语言, 真正的天生骄傲!
---------------------Swift常量与变量----------------------
一、Swift, Hello, World!
1、打印Hello, World!到控制台,代码如下图:
就一行?对,你没看错。
2、Swift的源文件拓展名是.swift
二、Swift和其它编程语言相比有哪些变化?
1、没有main函数,其它编程语言认为mian函数是程序的入口,Swift认为程序是从上往下一行一行执行的,因此第一行代码就是程序入口。
2、语句结束时不需要加”;”,当然若你喜欢也是可以加”;”
3、如果同一行有多个语句,则依然需要加”;”,不建议一行写多条语句。
4、定义标识符时必须声明该标识符是变量还是常量。
5、声明标识符的格式:变量/常量关键字 名称:数据类型(当然你也可以不写数据类型,Swift会自动根据初始值确定其类型),示例如下:
// 声明一个String类型的变量
var name:String = "android_ls"
// 声明一个String类型的常量
let desc:String = "做android开发的iOS程序员"
若你不想按上面的格式声明一个变量或者常量,可以采用下面这种写法,示例如下:
// 声明一个String类型的变量
var name = "android_ls"
// 声明一个String类型的常量
let desc = "做android开发的iOS程序员"
6、Swift中的打印语句,如下:
print("Hello, World!")
三、Swift中的常量和变量
1、在定义一个标识符时必须明确说明该标识符是一个常量还是变量
2、使用关键字var来定义变量
3、使用关键字let来定义常量
4、先来看个例子,如下图
结论:当一个字段定义为常量时是不可以修改的。
再看一个列子,示例代码:
let button = UIButton()
button.frame = CGRectMake(10, 10, 100, 100)
button.backgroundColor = UIColor.redColor()
self.view.addSubview(button)
结论:定义为常量不可以修改的意思是,对象的引用不可以再指向其他对象,但是可以通过对象的引用修改其属性值。
5、常量和变量的命名规则
基本上可以使用任何你喜欢的字符作为常量和变量名,示例如下:
变量和常量名的注意点:
不能包含数学符号(比如 +、-、*、/)
不能是关键字(比如 let、var)
不能以数字开头(比如 23d)
……
----------------Swift字符串的简单操作--------------
字符串
1、字符串是String
类型的数据,用双引号""
包住文本内容
var name = "android_ls"
2、字符串的常见操作
使用+
做字符串的拼接
// 声明一个String类型的变量
let name:String = "android_ls"
// 声明一个String类型的常量
let desc:String = "做android开发的iOS程序员"
// 使用+做字符串的拼接
let result = name + desc
3、用反斜杠和小括号\()
做字符串插值(把常量、变量插入到字符串中)
var age = 28
var result = "android_ls,今年\(age)岁"
4、把整数转换成字符串,使用\()
或者String()
var name = "android_ls"
var age = 28
var result = name + ",今年" + String(age) + "岁"
---------------Swift中常用的数据类型---------------
Swift中数据类型及用法
1、Swift中常用的数据类型有:
Int、Float、Double、String 、Bool、Character、Array、Dictionary、元组类型、可选类型
2、如何指定变量、常量的数据类型
在常量、变量名后面加:
类型名称
var name:String = "android_ls"
var age:Int = 28
一般来说没必要指定变量、常量的数据类型,在声明常量、变量时赋予初始值,Swift可以自动推断出这个变量、常量的数据类型。
我们来看下面这行代码
var age = 28
Swift会推断出age是Int
类型,因为28是个整数
3、Swift严格要求变量在使用前必须进行初始化,下面的代码是错误的
Swift是强类型的语言,任何一个变量或者常量都有明确的类型。
4、整数
整数分为两种:
有符号(signed):正、负、零
无符号(unsigned):正、零
Swift提供了8、16、32、64的有符号和无符号整数(Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt16
),比如
UInt8
:8位无符号整型
Int8
:8位有符号整型获取Int最值:(最大值、最小值)
var minValue = Int.min;
var maxValue = Int.max;
Int、UInt : 和平台相关(默认,相当于OC的NSInteger)
在定义变量时,别总是在考虑有无符号、数据长度的问题,尽量使用Int,这样可以保证代码的简洁和可复用性。
-
存储范围:
每种数据类型都有各自的存储范围,比如
Int8的存储范围:-128~127
UInt8的存储范围:0~255在Swift中,如果数值超过了存储范围,编译器会直接报错,下面的语句都会直接报错。
整数的四种表现形式:
十进制数:没有前缀
let a1 = 10
二进制数:以0b
为前缀
let a2 = 0b1010
八进制数:以0o
为前缀
let a3 = 0o12
十六进制数:以0x
为前缀
let a4 = 0xA
5、浮点数
- Swift提供了两种浮点数类型:
Float
: 32位浮点型
Double
: 64浮点型(默认) - 精确度:
Float
: 至少6小数
Double
: 至少15小数 - 浮点数的声明
let a:Float = 3.232
let b:Double = 3.1415926
-
如果没有明确的说明浮点数的类型,默认是
Double
类型的。
Float
和Double
类型的变量不能直接进行运算操作,如下
浮点数的表现形式:
十进制(没有前缀)
没有指数:let a1 = 12.7 // 12.7
有指数:let a2 = 0.127e2 // 12.7
0.127e2 = 0.127 * 10的二次方
MeN = M * 10的N次方
十六进制(以0x为前缀,且一定有指数)
let a3 = 0xA // 10
let a4 = 0xAp1 // 10 * 2的1次方 == 10 * 2
0xMpN = 0xM * 2N次方
6、数字格式(增加额外的0和下划线并不会影响数值原来的大小
)
数字可以增加额外的格式,使其更容易阅读
- 可以增加额外的
0
let money1 = 001988
let money2 = 001988.000
- 可以增加额外的
_
,以增加其可读性
let money3 = 100_0000
let money4 = 100_000_000
示例效果图如下:
7、Swift中基本运算,数据类型转换
整数和浮点数支持的运算:+、-、*、/、%
在进行基本运算时必须保证类型一致,否则会出错。
8、类型别名
- 使用
typealias
关键字定义类型的别名
// 给Int类型起个别名叫BoloInt
typealias BoloInt = Int
原类型名称能用在什么地方,别名就能用的什么地方
- 声明变量、常量
var a:BoloInt = 23
let b:BoloInt = 27
- 获得类型的最值
let minValue = BoloInt.min
- 类型转换
let result = BoloInt(3.1416)