美文网首页
Swift学习总结 - 1

Swift学习总结 - 1

作者: 恩莱客 | 来源:发表于2023-01-04 14:07 被阅读0次
  1. 发布于2014年WWDC,支持iOS、OS X、watchOS,结合了C和Objective-C的优点的一门新语言。
  2. 特性
  • 安全性 提供了更多安全措施,比如值使用前初始化、自动内存管理等。
  • 快速性 llvm编译框架,运行速度快。
  • 表现力 语法简单,易于阅读维护。
  • 兼容性 继承了c语言和oc的特性,并克服了C的兼容性问题。

还有以下特点:

  • 没有宏系统,其协议和扩展源自oc
  • 采用let常量、var变量声明变量
  • 没有显示指针,而是像C#语言一样,依赖值类型/引用类型
  • 不支持强制转换
  1. Swift具有强大的命名字符集,支持代码预览,我们可以通过playground来学习swift的语法
    file - new - playground

    playground
  2. 变量和常量
    变量和常量都要有类型, 值必须与分配的类型相同,代码结尾不要求,加不加都不会报错,注释与OC相同

var aVariable = 100
aVariable = 50
let string = "string"
/** 多变量 逗号 分割 */
var x = 0.0, y = 0.0, z = 0.0
  1. 类型 写法
    var 标识符:类型 = 初始值
    let 标识符:类型 = 初始值
var name: String = "Mark"
let x: Int = 1
let y: Int = 2
let z: Int = 3
print(x + y + z)
  1. 字符串
    支持转义字符,多行需要在首行、尾行添加三引号,并需要删除缩进效果
let label = "The width is "
let width = 100
let widthLabel = label + String(width)
print("The width is \(width)")
let quotation = """
I have \(x + y + z) apples.
And you said you
"""
  1. 数组、字典、集合、元组
    数组:存放相同数据类型元素,有序
var productList = ["apple", "orange", "banana"]
productList[1] = "purple"
print(productList)
productList.append("water")
// 创建空数组
productList = []
print(productList)
let shoppingList: [String] = []

字典:存放key-value对元素

var productInfo = ["name": "apple", "price": String(4)]
productInfo["color"] = "green"
print(productInfo)
// 创建空字典
productInfo = [:]
print(productInfo)
let occupations: [String: Float] = [:]

集合:无序、不重复的相同类型元素

let favoriteGenres: Set<String> = ["Rock", "Classical", "Hip hop"]

元组:不同数据类型元素的集合

let aturple = (21, 180, 60, "healthy", true)
  1. 可选类型Optional
    可选类型Optional是Swift特有的数据类型,可选类型的值可能是某个类型的值也可能是nil(表示没有值),可选类型的定义,在类型后面加“”,nil可以表示变量值缺失。
    可选项类型

可选类型在使用的时候必须要拆包,下面提供Optional的三种使用方式:

  • 隐式拆包
    在定义可选类型的时候使用“!,后面使该可选类型的时候不需要强制解包
let string1: String! = "Hello"
string1.count
  • 强制解包
    使用可选类型变量时,在其后加“!,如果使用不合法编译器会报错。
let string0: String? = "Hello"
print(string0!)
string0!.count
// 添加保护判断,否则nil时会报错
if string0 != nil{
    let count = string0!.count
    print(count)
}
  • if-let可选绑定
    使用if let临时常量 = 可选类型 来判断可选类型是否包含值,如果包含就把值赋给临时常量,否则(可选类型为nil时)if语句判断为假。
    例1:
var optionalName: String? = "John"
var greeting = "Hello!"
if let name = optionalName {
    greeting = "Hello,\(name)"
    print(greeting)
    print(name)
}

例2:

var string5: String? =  "Marry"
/**
 ① 使用`a ?? b`合并空值运算符的方式来解包,如果有值,则为count,如果为nil,则默认0
 使用合并控制运算符有两个条件:
 1. 表达式a必须是可选类型
 2. 表达式b必须和a的处处类型相同
 */
if string5 != nil{
    let count = string5?.count;
    print(count ?? 0)
}
// 使用可选项绑定来判断可选项是否有值,如果有就赋值给临时变量。同一个if语句可以有多个可选项绑定,用, 分开即可
// ② 使用可选项绑定
if let tempStr = string5{
    let count = tempStr.count
    print(count)
}
  1. 条件语句
  • if分支语句:
var teamScore: Float = 0
let personalScore = 51.0
if personalScore > 50.0{
    teamScore += 3
}else{
    teamScore += 1
}
print(teamScore)
  • switch分支语句:
var vegetable = "red pepper"
switch vegetable{
    case "celery":
        print("Add some raisins and make ants on a log.")
    case "cucumber", "watercress":
        print("That would make a good tea sandwich.")
    case let x where x.hasSuffix("pepper"):
        print("Is it a spicy \(x)")
    default:
        print("Everything tastes good in soup")
}
  1. 循环语句
    for循环:
var total = 0
for i in 0..<4{
    total += i
}
print(total)

不使用循环每一项的值时,可以使用下划线“_”替代变量名:

let max = 10
let base = 3
for _ in 1...max{
    total += base
}
print(total)

循环取数组值:

let array = [1, 3, 5, 7, 9]
var total = 0
for num in array{
    total += num
}
print(total)

取字典中值:

let interestingNumbers = ["Prime": [2, 3, 5, 7, 11, 13],"Fibonacci": [1, 1, 2, 3, 5, 8],"Square": [1, 4, 9, 16, 25],
]
var largest = 0
for (_, numbers) in interestingNumbers {
    for number in numbers {
        if number > largest {
            largest = number
        }
    }
}
print(largest)

while循环(当型循环):

var n = 2
while n < 100{
    n *= 2
}
print(n)

while-repeat循环(直到型循环:循环体至少执行一次)

var m = 2
repeat {
    m *= 2
} while m < 100
print(m)

相关文章

  • Swift学习总结1

    1.bounds 与 frame的区别: frame: view在父view坐标系统中的位置和大小。(参照点是,父...

  • Swift学习总结 - 1

    发布于2014年WWDC,支持iOS、OS X、watchOS,结合了C和Objective-C的优点的一门新语言...

  • Swift 4.0 基础学习总结(二)

    在 Swift 4.0 基础学习总结(一)中,我们学习的Swift中的基本数据类型以及控制流,Swift简介的语法...

  • Swift的知识点总结

    Swift学习总结 语言基础 常量和变量 说明:1.Swift有非常强大的类型推断,所以定义变量或常量时如果可以的...

  • Swift Review总结一:从 Swift Style 开始

    Swift Review总结一:从 Swift Style 开始 Swift Review总结一:从 Swift ...

  • 以撸代码的形式学习Swift-0:说明和目录

    这是我学习Swift的一个笔记和总结,以playground的形式放在我的github上,学习的版本是swift ...

  • Swift学习笔记<一>

    本节要点 Swift的特点 Swift的关键字总结 Swift的注释 Swift的特点 1.类型推断机制 Swif...

  • swift 泛型

    Swift-泛型学习和实例总结 - Mazy's Blog - CSDN博客 Swift中的泛型 - 简书

  • Swift 结构体

    对 Swift 学习 的一些总结学习文献:Chris Eidhof. “Swift 进阶” 类与结构体的主要不同点...

  • swift 学习总结

    1.for 循环 for i in 0...5 { print(i); } 2.class 和...

网友评论

      本文标题:Swift学习总结 - 1

      本文链接:https://www.haomeiwen.com/subject/abercdtx.html