Swift-001-Swift简介及基础语法

若如初见. 提交于 2020-03-24 02:17:32

 

1.Swift简介

2014年WWDC 发布的新开发语言,可与OC共同运行于Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

swift2.0之后的语法则趋于稳定,2017年发布的swift4.0虽有改动,但也只是增添了一些新特性。这些新特性需要在Xcode9上运行才能显示出效果。值得一提的是它支持unicode9,也就是说,可以用某些图片图标来充当变量。

2.特点

快速,安全,使用安全的编程模式并添加很多新特性,使编程更简单扩展性更强(支持Cocoa 和 Cocoa Touch框架)。

取消了OC指针和其他不安全访问的使用.变量总是初始化之前使用,数组和整数检查溢出,内存自动管理

③支持代码预览允许程序员在不编译和运行应用程序的前提下运行 Swift 代码并实时查看结果

④舍弃OC 早起的SmallTalk的语法,全面改为打点调用(使用点语法调用属性或者函数).

⑤提供了类似Java的命名空间(name space)/泛型(generic)/运算对象重载(operator overloading

语法非常简洁让编程的流程大大缩短、简化、高效、强大.

⑦去掉NS前缀

3.为什么要学习Swift

swift作为面向协议语言,不仅能写移动端,也可以做到搭建服务器端。纵观国内外iOS开发界,已经有许多公司直接或间接采用swift开发,使用swift语言开发已成为未来iOS开发的趋势。swift以简洁、优雅等优点迅速俘获广大开发者的青睐。

二、用Playground 体验swift开发

打开Xcode ,选择创建一个playground 项目

左边代码区,右边显示区(编译结果)

创建一个普通的UIView对象

 

playgound文件的左边是代码区,右边则是显示结果的区域。当点击用于眼睛时会实时显示出界面效果

可以立即快速查看(Quick Look)和显示结果(Show Result)正如上图所示:

 

Swift 和OC的重大区别

 

1>在swift中是没有.h和.m文件之分的。所有的代码全部都存储在一个文件里面。在swift中所有的代码都被封装在{}里面

2>OC使用alloc init进行初始化,而swift使用()

3>OC中使用[]来调用方法,而swift中采用点语法。比如UIColor.red

4>swift中不需要用分号分割语句

5>不需要#import导入头文件,就可直接使用,

6>print: NSLog, true 和 false  替代 Yes 和 No 

7>函数和闭包 使用func来声明一个函数,使用名字和参数来调用函数。使用->来指定函数返回值。

8>子类的定义方法是在它们的类名后面加上父类的名字,用冒号分割。 子类如果要重写父类的方法的话,需要用override标记

9>枚举和结构体 使用enum来创建一个枚举,使用struct来创建一个结构体。结构体和类有很多相同的地方,比如方法和构造器。它们结构体之间最大的一个区别就是 结构体是传值,类是传引用

10>接口和扩展: 使用protocol来声明一个接口

 

三、常量和变量

1>.数据类型:

常见的数据类型变量:

但其实,在swift中,是不存在基本的数据类型的,所谓的数据类型,其实都只是结构体

2.变量和常量:

声明:

swift中用let声明常量,用var声明变量。

常量不能修改他的值

//错误示范,let z 在声明的时候并没有赋值常量是不可改变的,只能在声明时赋值

在开发中,通常会优先选择使用let,因为不可变会更安全一点。所以建议在写代码之时,先选择let,等到需要变化的时候再改成var。

自动推导:

创建一个UIView,不指定类型。可以看到控制台上会打印出UIView的信息。这个现象被称为swift的自动推导。事实上,在代码左侧定义的类型只是程序员希望的类型,而右侧才是程序真实的类型

也就是说,变量或常量的类型会根据右侧代码执行的结果,推导出对应的类型。

可以使用热键option点击查看类型。

 

严格之处:在Swift 中,任何不同类型的数据之间是不允许直接运算的

 

如果非要让不同类型数据之间能够运算,可以将其中一个类型进行转换

此时得到的结果就是25。在swift中,做类型转换时是将数据括起来,相当于swift结构体中的构造函数。

 

当然也可以将前面的整数转换成Double型。此时就能打印出小数来。

结果是25.5

//指定类型

 

 Swift代码联想快捷键: 例如:输入CGRect + Command + 9

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!