100 Days of Swift - Day 01 Swift
2022-12-08 本文已影响0人
NieFeng1024
01 Day: variables, constants, and simple data types
1.1 Variables(变量)
- Question: 为什么 Swift 有变量?
- Answer:
- 变量是构成程序的关键部分,允许我们在程序中存储临时信息
- 变量的来源: 用户输入的内容,或者从Server下载的内容
- 使用 var 创建变量后,可以根据需要随时更改它,而无需再次使用 var
var operatingSystem = "macOS" // 声明变量 operatingSystem = "iOS" // 修改变量
1.2 Strings and integers
- Question: 为什么 Swift 有变量?
- Answer:
- Swift可以将变量创建为字符串和整数,或其他数据类型
- 当创建一个变量时,Swift根据赋值的数据类型来确定该变量的类型
- 变量一旦类型确定,该变量将始终具有该特定类型
// 变量赋值42为integers类型,则编译器则确定变量为integers,不可以再给其赋值其他类型 var meaningOfLife = 42 // 错误示例 meaningOfLife = “234” // 正确示例 meaningOfLife = 234
1.3 Multi-line strings
- Question: 为什么 Swift 有多行字符串?
- Answer:
- 标准字符串以引号开头和结尾,不允许包含换行符
- 弊端:适用于小段文本,如果文本超长,则在源代码中会变得很难以阅读。
// 单行字符串 var quote = "Change the world by being yourself"
- 多行字符串:使用三引号创建多行字符串
- 优势:可以根据需要将字符串写入任意多行,在代码中易于阅读
// 多行字符串 var burns = """ The best laid schemes O’ mice and men Gang aft agley """
- 标准字符串以引号开头和结尾,不允许包含换行符
1.4 Doubles and Integers
- Question: 为什么 Swift 有 Double 和 Integer?
- Answer:
- Swift提供几种存储数字的不同方式,旨在解决不同的问题,两种主要类型的数字称为整数和双精度数。
- 整数包含整数,例如 0、1、-100 和 6500 万
双精度数包含十进制数小数,例如 0.1、-1.001 和 3.141592654
// 单行字符串 var myInt = 1 var myDouble = 1.0
- Integer+Double 将转换为Double,保证精度不丢失
var total = myInt + myDouble
1.5 String interpolation
- Question: 为什么 Swift 有字符串插值?
- Answer:
- 不局限于静态字符串,想向用户展示某种自定义类型数据。
- 因此,Swift为我们提供了字符串插值
在运行时将自定义数据注入字符串的一种方式
它用我们提供的数据替换字符串的一个或多个部分。
// 插入字符串 var city = "Cardiff" var message = "Welcome to \(city)!" var name = "\(firstName) \(lastName)" // 插入数字 var number = 19871996869 var message = "My Tel number is \(number)!"
1.6 Constants
- Question: 为什么 Swift 既有常量又有变量?
- Answer:
- 变量:存储临时数据
- 允许修改或者变更
- 灵活,可以根据业务需求更新数据
var age = 28 age = 29
- 常量:一旦赋值,无法更改
- 存储不需要变更的数据
- 可以确保数据安全,防止被恶意修改
let finalName = “eric”
- 变量:存储临时数据
1.7 Type annotations
- Question: 为什么 Swift 提供类型注解?
- Answer:
- Swift 允许声明一个变量不使用类型注解,但需要赋值给变量,否则Swift无法预知变量类型
// 虽然没有使用类型注解,但设置为字符串,编译器会推断并设置字符串类型 var name = "Eric"
- Server 数据解析时,Swift 无法提前知道,所以需要告诉编译器数据类型
struct Person { let name: String let age: Int let height: Double }
- 当声明一个变量,期望类型和默认类型不一致时需要使用类型注解,否则编译器无法设置预期类型
// 预期是Double 类型,但赋值使用Int,因此需要类型注解 var percentage: Double = 99
- 优势:类型注解可以提高代码可读性,避免猜测
- Swift 允许声明一个变量不使用类型注解,但需要赋值给变量,否则Swift无法预知变量类型