Swift学习笔记(1):基础部分
目录:
- 分号
- 常量和变量
- 数据类型
- 数值型类型转换
- 类型别名
- 元组
- 可选类型
- API版本检查
分号
Swift并不强制要求你在每条语句的结尾处使用分号( ; ),你也可以按照自己的习惯添加分号。如果在一行内写多条独立的语句情况下必须要用分号。
常量和变量
使用let定义常量,使用var定义变量,常量和变量必须在使用前声明,且可以使用Unicode字符声明:不能包含数学符号,箭头,保留的(或者非法的)Unicode 码位,连线与制表符。也不能以数字开头,但是可以在常量与变量名的其他地方包含数字。
let maximumNumberOfLoginAttempts =
var currentLoginAttempt = 0
let constWelcomeMessage: String // 类型标注
var varWelcomeMessage: String // 类型标注
let 你好 = "你好世界" // Unicode字符声明常量
let ?? = "dogcow" // Unicode字符声明常量
你可以在一行中声明多个常量或者多个变量,用逗号隔开:
var x = 0.0, y = 0.0, z = 0.0
var red, green, blue: Double // 类型标注
数据类型
Swift包含基础数据类型:
Int, Int8, Int16, Int32, Int64, UInt, UInt8, UInt16, UInt32, UInt64 : 整型值
Float : 表示32位浮点数
Double : 表示64位浮点数, 当执行类型推断而推断浮点数的类型时,Swift总是会选择Double而不是Float
Bool : 布尔型值
String : 文本型值
Character : 字符型值
Swift提供集合数据类型:
Array : 数组类型
Set : 集合类型
Dictionary : 字典类型
Swift中所有的基本类型:整数、浮点数、布尔值、字符串、数组和字典,都是值类型,并且在底层都是以结构体的形式所实现。
数值型类型转换
Int8和Int16是不同的两种类型,在转换时必须使用类型强制转换
// 整数类型转换
let twoThousand: UInt16 =
let one: UInt8 =
let twoThousandAndOne = twoThousand + UInt16(one)
// 整数和浮点数间转换
let three =
let pointOneFourOneFiveNine = 0.14159
let pi = Double(three) + pointOneFourOneFiveNine // 加号两边的数类型须相同
类型别名
可以使用 typealias 关键字来定义类型别名
typealias AudioSample = UInt16
var maxAmplitudeFound = AudioSample.min // maxAmplitudeFound = 0
元组
把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型
let http404Error = (, "Not Found") // http404Error 的类型是 (Int, String)
let http200Status = (statusCode: , description: "OK") // 定义元组元素
let (statusCode, statusMessage) = http404Error // 分解元组获取元素值
let (justTheStatusCode, _) = http404Error // 忽略缺省值
可选类型
可以使用?定义可选类型变量或常量
var surveyAnswer: String? // surveyAnswer 被自动设置为 nil
var serverResponseCode: Int? =
let possibleString: String? = "An optional string."
let forcedString: String = possibleString! // 需要感叹号来获取值
如果一个可选类型变量或常量第一次被赋值之后,能够确定总会有值时,可以使用!定义隐式解析可选类型的变量或常量
let assumedString: String! = "An implicitly unwrapped optional string."
let implicitString: String = assumedString // 不需要感叹号
API版本检查
if #available(iOS , macOS 10.12, *) {
// 在 iOS 使用 iOS 10 的 API, 在 macOS 使用 macOS 10.12 的 API
} else {
// 使用先前版本的 iOS 和 macOS 的 API
}
声明:该系列内容均来自网络或电子书籍,只做学习总结!
Swift学习笔记(1):基础部分的更多相关文章
- swift学习笔记1——基础部分
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- 【swift学习笔记】二.页面转跳数据回传
上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...
- Swift学习笔记(一)搭配环境以及代码运行成功
原文:Swift学习笔记(一)搭配环境以及代码运行成功 1.Swift是啥? 百度去!度娘告诉你它是苹果最新推出的编程语言,比c,c++,objc要高效简单.能够开发ios,mac相关的app哦!是苹 ...
- MyBatis:学习笔记(1)——基础知识
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...
- bootstrap学习笔记之基础导航条 http://www.imooc.com/code/3111
基础导航条 在Bootstrap框中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多.我们先来看导航条中最基础的一个--基础导航条. 使用方法: 在制作一个基础导航条时,主要分 ...
- Django学习笔记(基础篇)
Django学习笔记(基础篇):http://www.cnblogs.com/wupeiqi/articles/5237704.html
- C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)
一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...
- C#学习笔记(基础知识回顾)之值传递和引用传递
一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...
- C#学习笔记(基础知识回顾)之值类型和引用类型
一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...
- MAVEN学习笔记之基础(1)
MAVEN学习笔记之基础(1) 0.0 maven文件结构 pom.xml src main java package resource test java package resource targ ...
随机推荐
- SEO分享:关于SEO的十个问题
想写的幽默一点,幽默细胞太少,想写的专业一点,又不够专业,结果就出现了这篇不伦不类的怪文,望海涵! 导读:前面写过一篇类似的文章,受到的评价好坏都有吧.有人说讲的没有实质性的内容,有些人抱怨回答的太过 ...
- apiCloud中openFrameGroup传参
apiCloud中openFrameGroup传参 1.无效的 api.openFrameGroup({ // 打开 frame 组 name: 'group', scrollEnabled: fal ...
- HTML与CSS学习记录
title: HTML与CSS学习记录 toc: true date: 2018-09-10 14:04:59 <HTML与CSS进阶教程读书笔记> HTML基础知识 HTML与XHTML ...
- BZOJ 1283 费用流
思路: 最大费用最大流 i->i+1 连边k 费用0 i->i+m (大于n的时候就连到汇) 连边1 费用a[i] //By SiriusRen #include <queue> ...
- java中return在Try-Catch中的执行顺序
我们知道return会结束此方法并返回指定值.以及在Try-catch-finally中无论try代码块中有没有异常finally中的代码时都会被执行的.但是如果return包含在try-catch- ...
- 【原创】JMS生产者和消费者【PTP异步接收消息】
PTP模式下,异步接收消息需要定义一个MessageListener来监听,当生产者有消息要发送时会主动通知Listener去处理该消息,会调用监听的onMessage方法去处理. 首先看生产者(和同 ...
- python中index、slice与slice assignment用法
python中index.slice与slice assignment用法 一.index与slice的定义: index用于枚举list中的元素(Indexes enumerate the elem ...
- SAI / PS绘画一个卡通女孩详解
本教程介绍使用SAI / PS绘画一个卡通女孩的教程 ,教程很详细,动起你的小手一起来试试吧! 软件下载:http://www.dongmansoft.com/xiazai.html 想要Get到更多 ...
- js禁止某个页面的回退
;!function(pkg, undefined){ var STATE = 'x-back'; var element; var onPopState = function(event){ eve ...
- h5实现 微信的授权登录
本文重点 判断是不是微信环境 localstorage设置一个值 微信授权登录 获取一个时间戳 new Date().getTime() const wx = (function () { retur ...