IOS开发新手指南:Swift语言基础数据类型入门

发表时间: 2023-02-28 00:41

swift

在前面的文章中,我们学习了如何搭建开发环境以及如何通过xcode创建IOS的界面布局,见:

  1. 新手学IOS开发-开发环境搭建
  2. 新手学IOS开发-APP界面布局基础开发

但在前面的这两篇文章中,我们只是简单的搭建了IOS的用户界面,但是有了用户界面还不够,我们需要响应用户的输入,例如通过用户输入的内容查询服务器上的数据、执行数学逻辑计算等,这些操作都需要我们通过编码的方式实现,如何编码呢?这就需要用到IOS开发所使用的swift编程语言。

笔者需要从用户输入的查询条件从服务器上查询数据列表以及数据详情,这样的需求也使得笔者需要学习swift语言。

什么是Swift

引用苹果官方的介绍:

Swift 是一种强大直观的编程语言,适用于 iOS、iPadOS、macOS、Apple tvOS 和 watchOS。编写 Swift 代码的过程充满了乐趣和互动。Swift 语法简洁,但表现力强,更包含了开发者喜爱的现代功能。Swift 代码从设计上保证安全,并能开发出运行快如闪电的软件。

swift有哪些特点呢?笔者从苹果官方摘录以下几点:

  1. 现代化:Swift 是编程语言的最新研究成果,并融合了构建 Apple 平台的数十年经验。命名参数以简洁的语法表示,让你能更轻松地阅读和维护以 Swift 编写的 API。你甚至无需键入分号。推断类型让代码更为简洁且不易出错;而模块则消除了标头,改为提供名称空间。为了给国际语言和表情符号提供最佳支持,字符串会保持 Unicode 正确性,并使用基于 UTF-8 的编码来优化各种用例中的性能。内存采用严谨的确定性引用计数来自动管理,最大程度地降低了内存使用量,且不会产生垃圾回收开销。你甚至可以使用简单的内置关键词编写并发代码,这些关键词定义异步行为,使代码更清晰易读,更不易出错
  2. 从设计上确保安全:Swift 可避免全部类型的不安全代码。变量在使用前会始终先进行初始化,数组和整数会进行溢出检查,内存将实现自动管理,强制式独占访问内存功能亦可防范很多编程错误。语法经过调整,让你可轻松定义目标意图。例如,只需三个字符的关键词就可定义变量 (var) 或常量 (let)。此外,Swift 充分利用值类型,特别是针对 Array 和 Dictionary 等常用类型。这让你在拷贝这种类型的内容时,能放心它不会在其他位置被修改。
  3. 快速而强大:最初构思时,我们就希望 Swift 实现快速运行的效果。利用出色的高性能 LLVM 编译器技术,Swift 代码会转换为经过优化的、可充分利用现代硬件的机器代码。此外,语法和标准资料库也进行了调整,使最浅显的编码方式也能有最佳表现,无论它是在你腕上的手表上运行,还是跨一组服务器运行。
  4. Objective-C 互操作性:你可以立即使用 Swift 创建全新的 App,或开始使用 Swift 代码在你的 App 中实施新的特性和功能。Swift 代码可以与你现有的 Objective-C 文件在同一个项目中共存,并可完全访问 Objective-C API,让你能轻松地采用这些文件。

nil

swift 中的关键词nil表示数据不存在

数据类型

数据类型指的是可以在程序中存储和操作的值的类型,每种编程语言都有数据类型,好比我们小学时候学过的整数和小数,就是两种数据类型。swift也不例外,有自己的类型系统。下面我们来介绍一下swift中的数据类型。

Int

一般来说,你不需要专门指定整数的长度。Swift 提供了一个特殊的整数类型Int,长度与当前平台的原生字长相同:

  • 在32位平台上,IntInt32长度相同。
  • 在64位平台上,IntInt64长度相同。

除非你需要特定长度的整数,一般来说使用Int就够了。这可以提高代码一致性和可复用性。即使是在32位平台上,Int可以存储的整数范围也可以达到-2,147,483,648~2,147,483,647

Int8/Int16/Int32/Int64

分别表示不同长度的Int

其中:

  1. Int8占1字节,数值范围为-127 到 127
  2. Int16占2字节,数值范围为-32768 到 32767
  3. Int32占4字节,数值范围为-2147483648 到 2147483647
  4. Int32占8字节,数值范围为-9223372036854775808 到 9223372036854775807

当需要使用不同范围的Int值时,可使用不同的Int类型。

UInt

Swift 也提供了一个特殊的无符号类型UInt,长度与当前平台的原生字长相同:

  • 在32位平台上,UIntUInt32长度相同。
  • 在64位平台上,UIntUInt64长度相同。

UInt也有对应的
UInt8/UInt16/UInt32/UInt64

浮点数Double和Float数据类型

浮点数是有小数部分的数字,比如3.141590.1-273.15

浮点类型比整数类型表示的范围更大,可以存储比Int类型更大或者更小的数字。Swift 提供了两种有符号浮点数类型:

  • Double表示64位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。
  • Float表示32位浮点数。精度要求不高的话可以使用此类型。

Bool(布尔类型)

Swift 有一个基本的布尔(Boolean)类型,叫做Bool。布尔值指逻辑上的值,因为它们只能是真或者假。Swift 有两个布尔常量,true和false。

Character(字符类型)

字符指的是单个字母, 例如'c', 'a'

String(字符串)

字符串是字符的序列集合,例如 "swift"

Optional(可选类型)

表示包装值存在或缺少值的类型,主要用来处理值不存在的情况,它表示某个变量的值可能不存在。

例如:let shortForm: Int? 表示shortForm是一个Int的可选类型,即shortForm可能是nil

struct(结构体)

Swift 结构体是构建代码所用的一种通用且灵活的构造体,结构体由一组称为成员(或称为域,或称为元素)的不同数据组成,其中每个成员可以具有不同的类型。 结构体通常用来表示类型不同但是又相关的若干数据。 结构体类型不是由系统定义好的,而是需要程序设计者自己定义的。

说简单点结构体就是把多个变量放一起当一个数据类型。

我们可以为结构体定义属性(常量、变量)和添加方法,从而扩展结构体的功能。例如:

struct User {   var id: Int   var name: String}

结语

数据类型是编程语言中必不可少的元素,我们日常开发离不开基础数据类型,在后面的IOS开发学习过程 中,所有内容都离不开数据类型,因此数据类型是必须掌握的基础。掌握了数据类型后,下期我们学习swift中的基础语法。

往期文章回顾

  1. 新手学IOS开发-开发环境搭建
  2. 新手学IOS开发-APP界面布局基础开发