Swift基础语法

---------------------Swift简介----------------------
一、神马是Swift?
1、Swift 是苹果公司2014 年在WWDC(苹果开发者大会)上发布的全新编程语言。
2、Swift在天朝翻译为“雨燕”,其Logo如下图

Swift基础语法_第1张图片
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!到控制台,代码如下图:


Swift基础语法_第2张图片
Swift, 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、先来看个例子,如下图


Swift基础语法_第3张图片
Swift中的常量和变量

结论:当一个字段定义为常量时是不可以修改的。

再看一个列子,示例代码:

 let button = UIButton()
 button.frame = CGRectMake(10, 10, 100, 100)
 button.backgroundColor = UIColor.redColor()
 self.view.addSubview(button)

结论:定义为常量不可以修改的意思是,对象的引用不可以再指向其他对象,但是可以通过对象的引用修改其属性值。
5、常量和变量的命名规则
基本上可以使用任何你喜欢的字符作为常量和变量名,示例如下:

Swift基础语法_第4张图片
常量和变量的命名规则
变量和常量名的注意点:

不能包含数学符号(比如 +、-、*、/)
不能是关键字(比如 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类型的。
    FloatDouble类型的变量不能直接进行运算操作,如下

    Swift基础语法_第5张图片
    ```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

示例效果图如下:


Swift基础语法_第6张图片
增加额外的0和下划线并不会影响数值原来的大小

7、Swift中基本运算,数据类型转换
整数和浮点数支持的运算:+、-、*、/、%

Swift基础语法_第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)

你可能感兴趣的:(Swift基础语法)