Swift语言的基础详解
1.1.关于swift
· Swift 是一种适用于 iOS 和 OS X 应用的全新编程语言,它建立在最好的 C 和 Objective-C 语言之上,并且没有 C 语言的兼容性限制。Swift 采用安全的编程模式,增加了现代功能使 编程更容易、更灵活、更有趣。Swift 以成熟且备受宠爱的 Cocoa 和 Cocoa Touch 框架为 支撑,这是一个重新构想软件开发的机会。
· 支持Playground,它允许程序实时预览,无需频繁创建和运行APP
· 简洁, 安全, 容易, 灵活, 高效
1.2.swift初见
通常来说,编程语言教程中的第一个程序应该在屏幕上打印“Hello, world”。在 Swift 中,可 以用一行代码实现:
1. println("hello,world")
注意:为了获得最好的体验,在 Xcode 当中使用代码预览功能。代码预览功能可以让你编辑代码并实时看到运行结果。
· 单行注释
// 单行注释
· 多行注释
/*
// 单行注释
/* 多行注释,需要注意的是,多行注释可以嵌套,这点和其他语言不一样,很实用的一个功能 */
*/
· 分号
· 单个语句后面无需加分号,加了也行
· 多个语句放在一行,需要加分号
1.3.变量与常量
· 变量
· 使用var声明变量(值可以根据需要不断修改的量称为变量)
· 常量
· 使用let声明变量(值不能够被二次修改的量称为常量)
· 类型推导
· 编译器在编译的时候,通过提供的初始化值,自动推导出 特定的表达式的类型
· 注意
· 变量多次赋值的时候需要保证值的类型是相同的
· 显示声明类型,语法:"变量:类型"
· swift不会自动给变量赋初始化值,也就是说变量不会有默认值,所以要求在使用变量之前必须要对其初始化
· swift不支持隐士类型转换,需要显示类型
· 使用typealias关键字定义类型别名,类似typedef
· 字符串格式化,使用 \(item)
1.4.命名规则
· swift中可以使用几乎任何字符来常量和变量名,包括Unicode。但是不能含有数字符号,箭头,无效的Unicode,横线—,制表符,
且不能以数字开头
1.5.整型表现形式
· 二进制数,前缀为 0b
· 八进制数,前缀为 0o
· 十六进制数,前缀为 0x
2.1.数组与字典
· 使用 [ ] 操作符声明数组
· 使用 [ key : value ]操作符声明字典
2.1.1.数组的用法
2.1.2.数组的增加、修改与删除元素的值用法
2.1.3.数组的遍历
2.1.4.声明数组的方法
2.1.5.字典的声明与输出
2.1.6.字典的添加、修改、删除方法
2.1.7.输出字典的个数count
2.1.8.字典的遍历方法
3.1.元祖
元组(tuples)把多个值组合成一个复合值。元组内的值可以使任意类型,并不要求是相 同类型。
例子: 1. let http404Error = (404, "Not Found")
2. // http404Error 的类型是 (Int, String),值是 (404, "Not Found")
你可以把任意顺序的类型组合成一个元组,这个元组可以包含所有类型。只要你想,你可 以创建一个类型为(Int, Int, Int)或者(String, Bool)
或者其他任何你想要的组合的元组。
你可以将一个元组的内容分解(decompose)成单独的常量和变量,然后你就可以正常使 用它们了:
1. let (statusCode, statusMessage) = http404Error
2. println("The status code is \(statusCode)")
3. // 输出 "The status code is 404"
4. println("The status message is \(statusMessage)")
如果你只需要一部分元组值,分解的时候可以把要忽略的部分用下划线(_)标记:
1. let (justTheStatusCode, _) = http404Error
2. println("The status code is \(justTheStatusCode)")
3. // 输出 "The status code is 404"
此外,你还可以通过下标来访问元组中的单个元素,下标从零开始:
3. println("The status message is \(http404Error.1)")
let http200Status = (statusCode: 200, description: )
给元组中的元素命名后,你可以通过名字来获取这些元素的值:
2. // 输出 "The status code is 200"
3. println("The status message is \(http200Status.description)")
注意:元组在临时组织值的时候很有用,但是并不适合创建复杂的数据结构。如果你的数 据结构并不是临时使用,
请使用类或者结构体而不是元组。请参考类和结构体。
4.1. 可选类型
4.1.1.nil的详解
4.1.2.总结 ?的使用场景
· 声明Optional变量
· 用在Optional值操作中,用来判断是否响应后面的操作
5.1.解包
5.1.1隐式解包的可选类型
隐式解包的可选类型例子:
6.1.Swift基本运算符
6.1.1.赋值运算符
6.1.2.数学运算符
6.1.3.比较运算符
6.1.4.三目运算符
6.1.5.范围运算符
6.1.6.逻辑运算符
7.1.字符与字符串
7.1.1.初始化空的字符串
7.1.2.变长字符串
7.1.3.字符计数
7.1.4.组合字符串与字符
7.1.5.字符串格式化
7.1.6.字符串比较
7.1.7.字符串大小写
7.1.8.字符串编码
8.1.流程控制
9.1.条件语句
9.1.2.区间范围匹配(Range Matching)
10.1.函数与闭包
主要内容: ·函数的定义与调用 ·函数参数与返回值 ·函数参数名称 ·函数类型
·函数嵌套 ·闭包表达式 ·尾随闭包 ·值捕获
10.1.2.函数
C语言函数指针的写法
OC语言的Block写法
·注意:swift语言调用C函数、OC函数时需引入下面的文件
10.1.3.闭包
闭包的总结
哈哈
Swift语言的基础详解的更多相关文章
- Python学习一:序列基础详解
作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7858473.html 邮箱:moyi@moyib ...
- Python学习二:词典基础详解
作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...
- 深入浅出DOM基础——《DOM探索之基础详解篇》学习笔记
来源于:https://github.com/jawil/blog/issues/9 之前通过深入学习DOM的相关知识,看了慕课网DOM探索之基础详解篇这个视频(在最近看第三遍的时候,准备记录一点东西 ...
- 三剑客基础详解(grep、sed、awk)
目录 三剑客基础详解 三剑客之grep详解 1.通配符 2.基础正则 3.grep 讲解 4.拓展正则 5.POSIX字符类 三剑客之sed讲解 1.sed的执行流程 2.语法格式 三剑客之Awk 1 ...
- java封装基础详解
java封装基础详解 java的封装性即是信息隐藏,把对象的属性和行为结合成一个相同的独立单体,并尽可能地隐藏对象的内部细节. 封装的特性是对属性来讲的. 封装的目标就是要实现软件部件的"高 ...
- Dom探索之基础详解
认识DOM DOM级别 注::DOM 0级标准实际并不存在,只是历史坐标系的一个参照点而已,具体的说,它指IE4.0和Netscape Navigator4.0最初支持的DHTML. 节点类型 注:1 ...
- C语言内存对齐详解(2)
接上一篇:C语言内存对齐详解(1) VC对结构的存储的特殊处理确实提高CPU存储变量的速度,但是有时候也带来了一些麻烦,我们也屏蔽掉变量默认的对齐方式,自己可以设定变量的对齐方式.VC 中提供了#pr ...
- C语言内存对齐详解(3)
接上一篇:C语言内存对齐详解(2) 在minix的stdarg.h文件中,定义了如下一个宏: /* Amount of space required in an argument list for a ...
- Android中Canvas绘图基础详解(附源码下载) (转)
Android中Canvas绘图基础详解(附源码下载) 原文链接 http://blog.csdn.net/iispring/article/details/49770651 AndroidCa ...
随机推荐
- Nginx-->基础-->排错-->nginx错误总结
一.启动时错误 1.错误提示: 2016/11/16 17:36:41 [emerg] 2458#2458: getpwnam("nginx") failed 查看错误日志文件内容 ...
- HandlerThread源码分析
其实原本HandlerThread的分析不应该单独开一篇博客的,应该在讲消息机制的那一片中一起分析. 但当时忘记了,而且今天第一次用MarkDown写博客,有点上瘾,就再来一篇,权当滥竽充数过过手瘾. ...
- 新手看Mockplus
如今是一个快节奏的社会,每一天都会有无数的软件发布,每一款软件的制作过程不可避免的需要使用原型设计工具.而Mockplus就是一款原型设计软件,可以用于移动端,PC端以及WEB的原型设计.它也符合如今 ...
- 多层嵌套ajax同步
方式一: $.ajax({ type : "post", url : "user/add", data : data, async : false, //必须为 ...
- Hibernate+jsp+struts+spring做增删该查,
同样还是web项目,这里只做了一张表,做一个测试,例子.主要是建Hibernate 的时候要非常注意,有时间了整理一下建Hiberbnate 的时候需要注意的事项 这里我是建了5个包,其实只要四个就好 ...
- Microsoft.Office.Interop.Word.Document.Open returns null on Windows Server 2008 R2
系统终于通过UAT,可以上线了.一遍测下来还行,可是为什么word转PDF就是不行呢?查了一下log,原来在wordApp.Documents.Open来打开生产的word文件的时候,返回一直是空.之 ...
- Cracking-- 1.1 判断字符串中是否有重复字符
第三种方法为位运算的方法. 位运算符: << 左移 & 与 | 或 #include <iostream> #include <string> #incl ...
- 区间型DP
区间型DP是一类经典的动态规划问题,主要特征是可以先将大区间拆分成小区间求解最后由小区间的解得到大区间的解. 有三道例题 一.石子合并 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆. ...
- centos 7安装配置bind
环境: 三台虚拟机,全部安装Centos 7, tony4.hadoop.com 192.168.31.223 tony5.hadoop.com 192.168.31.224 tony6.hadoop ...
- stm32软件模拟IIC读取PX4FLOW光流传感器数据
这段时间在做全国光电设计大赛,用到了px4的px4flow光流传感器,用软件模拟iic读取数据不定期会导致px4flow死机,查了资料和光流的源码,发现这个光流用了stm32的硬件iic,所以对软件模 ...