irpas技术客

【一篇文章带你入门Swift】、变量-常量、for语句、函数、类-结构、可选-解包、ifelse、guard语句、枚举Switch、协议、strong和weak

未知 8387

一篇文章带你入门Swift

一篇文章带你入门Swift 一篇文章带你入门Swift①、Swift 初学者第 1 部分:入门了解一下Playground1. 使用Xcode打开并且创建一个Playground2. 创建一个空面板的playground3. 创建完playground之后 设置下面面板 ②、Swift 初学者第 2 部分:变量和常量③、Swift 初学者第 3 部分 - 类型1. 查看类型使用2. 类型的案例 ④、Swift 初学者第 4 部分 - 函数和参数1. 函数演示代码 ④、Swift 初学者第 4 部分 - 函数和参数 ⑤、Swift 初学者第 5 部分 - 类和结构演示代码 ⑤、Swift 初学者第 5 部分 - 类和结构 ⑥、Swift 初学者第 6 部分 - 循环演示代码 ⑥、Swift 初学者第 6 部分 - 循环 ⑦、Swift 初学者第 7 部分 - 可选和展开演示代码 ⑦、Swift 初学者第 7 部分 - 可选和展开 ⑧、Swift 初学者第 8 部分 - if else 条件演示代码 ⑧、Swift 初学者第 8 部分 - if else 条件 ⑨、Swift 初学者第 9 部分 - guard守卫语句演示代码 ⑨、Swift 初学者第 9 部分 - guard守卫语句 ⑩、Swift 初学者第 10 部分 -枚举-Enums-Switch演示代码 ⑩、Swift 初学者第 10 部分 -枚举-Enums-Switch ?、Swift 初学者第 11 部分 - 协议-Protocols演示代码 ?、Swift 初学者第 11 部分 - 协议-Protocols ?、Swift 初学者第 12 部分 -strong-weak演示代码 ?、Swift 初学者第 12 部分 -strong-weak ?、Swift 初学者第 13 部分 -闭包-Closures演示代码 ?、Swift 初学者第 13 部分 -闭包-Closures ?、Swift 初学者第 14 部分 - 字符串教程演示代码 ?、Swift 初学者第 14 部分 - 字符串教程 ?、Swift 初学者第 15 部分 - 数组和字典演示代码 ?、Swift 初学者第 15 部分 - 数组和字典 ?、Swift 初学者第 16 部分 - 整数、浮点数、双精度数演示代码 ?、Swift 初学者第 16 部分 - 整数、浮点数、双精度数 ?、Swift 初学者第 17 部分 - 库和框架演示代码 ?、Swift 初学者第 17 部分 - 库和框架 ?、Swift 初学者第 18 部分 - 命名约定演示代码 ?、Swift 初学者第 18 部分 - 命名约定 ?、Swift 初学者第 19 部分 - 类型别名演示代码 ?、Swift 初学者第 19 部分 - 类型别名 ?、Swift 初学者第 20 部分 - 三元运算符和返回语句演示代码 ?、Swift 初学者第 20 部分 - 三元运算符和返回语句 ?、Swift 初学者第 21 部分 - 数学函数演示代码 ?、Swift 初学者第 21 部分 - 数学函数 ?、Swift 初学者第 22 部分 - 搜索和排序演示代码 ?、Swift 初学者第 22 部分 - 搜索和排序 ?、Swift 初学者第 23 部分 - 总结演示代码 ?、Swift 初学者第 23 部分 - 总结

①、Swift 初学者第 1 部分:入门

Swift for Beginners Part 1: Getting Started

内容 准备

苹果电脑安装Xcode编译器playground的创建以及自动编辑功能 了解一下Playground

Playground

1. 使用Xcode打开并且创建一个Playground

2. 创建一个空面板的playground

3. 创建完playground之后 设置下面面板

长按可以调出下面效果 使用自动编译功能 playground会自动检测代码区的输入 显示到显示区


②、Swift 初学者第 2 部分:变量和常量

Swift for Beginners Part 2: Variables & Constants

内容

变量 - 可以发生变化常量 - 不可以改变的静态变量 - 只会存储一次 // Variable , Constant, Static // 变量 - 可以改变的 var str = "Hello World" var x = 4 var y = 1 y = 2 // 常量 - 不可变的 let z = 3 //z = 13 // MyPlayground.playground:13:1: note: change 'let' to 'var' to make it mutable // 静态常量 // 人类 class Person { // 静态常量 只存在一次 static let age = 12 var lastName = "Simth" } var john = Person() var Jen = Person() var Bri = Person() var Tim = Person() ③、Swift 初学者第 3 部分 - 类型

Swift for Beginners Part 3 - Types

Swift是有类型推导的 比如

隐性类型推导 let name = "Joe"

系统会自动检测 后面的类型 从而推导出来 name 是一个字符串类型 上面是一种隐性的类型推导 2. 指定型类型 let name : String = “Joe”

1. 查看类型使用

type(of: ???)

2. 类型的案例 // Types // 类型 var x = 3 // integer var name = "Joe" // String // 类型推导 // swift能检测类型推导 type(of: x) // 明确类型的变量 - 强类型 // 字符串类型 var lastName : String = "last" // 整型 let age : Int = 22 // 浮点型 let price : Double = 1.99 var height : Float = 200.123123123123123123123 //lastName = 3 //不能将一个字符串改成整型 class Person { } //var john : Person = Person() // Swift的类型推导 var john = Person() let button1 : UIButton = UIButton() var isComplete : Bool = false isComplete = true
④、Swift 初学者第 4 部分 - 函数和参数

Swift for Beginners Part 4 - Functions & Parameters

函数和参数 什么是函数 函数是一组指令或一段代码

1. 函数 无返回值有返回值有参数 演示代码 ④、Swift 初学者第 4 部分 - 函数和参数 import Foundation // funcs and Parameters func myFirestFunction() { } // 两个数相加 func addTwoNubers(a: Int,b: Int) -> Int { let sum = a + b // return a + b return sum } // 平方 func squareNumber(number: Int) -> Int{ return number * number } func log(){} // 是否为奇数 func isEven(number: Int) -> Bool { if number % 2 == 0 { return true } return false } var x = 3 var y = 7 let sum = addTwoNubers(a:x,b:y) let squaredSum = squareNumber(number: 10) log() let reuslt = isEven(number: 10) let reuslt2 = isEven(number: 11)
⑤、Swift 初学者第 5 部分 - 类和结构

Swift for Beginners Part 5 - Classes & Structs

类和结构 class Structs 类是引用类型 结构是值类型

演示代码 ⑤、Swift 初学者第 5 部分 - 类和结构 import Foundation // Swift是面向对象编程的 // 类是引用类型 // 结构是值类型 class Person { } // 建模的结构 //struct Car { // //} // 车辆 class Vehicle { } struct Car { let make : String let color : String // // 开车 // func drive(){ // // } // 初始化 init(color: String,make: String){ self.color = color self.make = make } } var bmw : Car = Car(color: "blue", make: "bmw") var car2 : Car = Car(color: "red", make: "honda")
⑥、Swift 初学者第 6 部分 - 循环

Swift for Beginners Part 6 - Loops

遍历一个特定的操作多次任务 for、while

演示代码 ⑥、Swift 初学者第 6 部分 - 循环 // Loops // 循环 // 遍历一个特定的操作多次任务 // 将1、2、3、4、5、6数字 分别乘以 2 // for let numbers = [1,2,3,4,5,6] print("test") // 打印 // for for thing in numbers { let result = thing * 2 print(result) } // while var x = 0 while x <= 3 { print(x) // 防止死循环 x += 1 }
⑦、Swift 初学者第 7 部分 - 可选和展开

Swift for Beginners Part 7 - Optionals & Unwrapping

可选项以及解包

演示代码 ⑦、Swift 初学者第 7 部分 - 可选和展开 import Foundation // Optionals // 可选项 // Swift是强类型语言 var name : String? = "Joe" name = nil // error: 'nil' cannot be assigned to type 'String' 需要在name : String添加? 解除错误 var x: Int? = 3 var y: Int? = 12 //var result = x + y // x 和 y 是 可选项的 所以我们需要展开 也就是解开可选 if let value = x { print("has value") if let value2 = y { let result = value + value2 print(result) } } // 价格 var price: Double? = nil print(price) price = 1.23 print(price) // 打印出来的是可选类型 type(of: price) // Optional<Double>.Type
⑧、Swift 初学者第 8 部分 - if else 条件

Swift for Beginners Part 8 - If Else Conditionals

if else 判断语句的使用

演示代码 ⑧、Swift 初学者第 8 部分 - if else 条件 //Conditionals // 条件 var x = 12 if x > 10 { } else if x > 20 { } else { // something else } var z: Int? = nil // if let realNumber = z 相当于可选检测 if let realNumber = z { // x = nil 永远不会进来 // use vlaue in here } if x % 2 == 0 { print(x) } var a = 1 var b = 12 // || 或者 // && 并且 if a > 10 || a < 200 { } // if a > 10 && a < 200 if a > 10 { if x < 200 { // 执行到这里相当于 // 等同 if a > 10 && a < 200 } }
⑨、Swift 初学者第 9 部分 - guard守卫语句

Swift for Beginners Part 9 - Guard Statements

Guard语句的使用

演示代码 ⑨、Swift 初学者第 9 部分 - guard守卫语句 import Foundation // guard // 判断数字是否大于5 func numberLargerThanFive(number: Int) -> Bool { // if number < 5 { // return false // } // return true // 如果 number > 5 往下执行 不会执行guard里面的语句 // 如果 number < 5 就会执行 guard里面的语句 guard number > 5 , number > 4 else {return false} return true } // 比如登录的时候 需要检测用户输入的手机号 或者密码进行效验 var text : String? //text = "hello world" if let vlaue = text { print(vlaue) } // 使用guard进行效验并且打印 func printValue(){ guard let vlaue = text else {return} print("guard-\(vlaue)") } printValue()
⑩、Swift 初学者第 10 部分 -枚举-Enums-Switch

Swift for Beginners Part 10 - Enums & Switch Statements

枚举的定义 Switch的使用

演示代码 ⑩、Swift 初学者第 10 部分 -枚举-Enums-Switch import Foundation import UIKit // Enums and SWitch statements // 枚举 是数据结构的一种方式 enum States { //enum States : String { case InProgress // 进行中 case Aborted // 终止 case Complete // 完成 case willStart // 将要开始 // case InProgress = "1" // 进行中 // case Aborted // 终止 // case Complete // 完成 // case willStart // 将要开始 // case aborted = "2" // 终止 // case Complete = "3" // 完成 // case willStart = "4" // 将要开始 // case InProgress, Aborted ,Complete , willStart // 简写 } let state = States.InProgress func checkState(){ switch state{ case .InProgress: // show info form print("state - InProgress") break case.Aborted: break case.Complete: break case.willStart: break } } checkState() //var currentState = "Complete" var current : States current = .InProgress var color : UIColor? color = UIColor.red
?、Swift 初学者第 11 部分 - 协议-Protocols

Swift for Beginners Part 11 - Protocols

协议的定义 协议的使用

演示代码 ?、Swift 初学者第 11 部分 - 协议-Protocols import Foundation // Protocols // 一旦一个拥有了协议 那么这个类就要遵循这个协议 //protocol CarProto { // 数据源 一般是跟数据相关 // delegate 一般是跟用户交互相关 protocol CarDataSource { var color: String { get set } // 只是声明函数 func drive() // 是否为全轮驱动 func isAllWheelDrive() -> Bool } class Car { } class BMW : Car,CarDataSource { var color: String = "" func drive() { } func isAllWheelDrive() -> Bool { return true } // init(color : String){ self.color = color } }
?、Swift 初学者第 12 部分 -strong-weak

Swift for Beginners Part 12 - Strong vs Weak Memory

强引用 和 弱引用的使用

演示代码 ?、Swift 初学者第 12 部分 -strong-weak import Foundation // Strong vs weak // 强引用 和 弱引用 //weak var wstr = "dasdaasddjask" // 默认情况是强引用 var str = "dasdaasddjask" // 小孩牵气球案例 // 孩子存在 气球可以存在 或者不存在 // 孩子不存在 气球必定不存在 气球必须是弱引用 可有可无 class Child { weak var balloon = "str" } var joe = Child()
?、Swift 初学者第 13 部分 -闭包-Closures

Swift for Beginners Part 13 - Closures

闭包的基本使用

演示代码 ?、Swift 初学者第 13 部分 -闭包-Closures import Foundation // Closures / lambda // 函数调用 func isGreaterThanThree(number: Int) -> Bool { if number > 3 { return true } return false } // 接受一个int类型 并且返回一个bool结果 //var myFunction: ((Int) -> (Bool)) = { // number in // if number > 3 { // return true // } // return false //} //myFunction(4) // 闭包调用 let myFunction: ((Int,Int) -> (Bool)) = { number,number2 in if number > 3 { return true } return false } let result = myFunction(2,3) let res2 = isGreaterThanThree(number: 4)
?、Swift 初学者第 14 部分 - 字符串教程

Swift for Beginners Part 14 - Strings tutorial

字符串的声明、判断字符串是否有值、字符串的拼接、字符串的长度

演示代码 ?、Swift 初学者第 14 部分 - 字符串教程 import Foundation // Strings // 字符串 var setve : String? = "setve Jobs" if let name = setve { print(name) } var first = "Setve" var last = "Jobs" var number = 1 // 字符串拼接 var fullname = "my name is \(first) \(last) and I am number is \(number)" print(fullname) let length = fullname.count print(fullname) var nums = [10, 20, 30, 40, 50] // 用给定的集合替换指定的元素子范围。 nums.replaceSubrange(1...3, with: repeatElement(1, count: 5)) print(nums) // Prints "[10, 1, 1, 1, 1, 1, 50]"
?、Swift 初学者第 15 部分 - 数组和字典

Swift for Beginners Part 15 - Arrays & Dictionaries

数组 和 字典的定义 以及使用

演示代码 ?、Swift 初学者第 15 部分 - 数组和字典 import Foundation // Arrays and Dictionaries // 数组 和 字典 // 数组 var names : [String] = ["Joe","John","Jacob"] var numbers : [Int] = [1,2,3] // 任何类型的数组 var Anytypes: [Any] = [1,2,3,"Joe","John","Jacob",1.22] for number in numbers { print(number) } // 字典 // 键值 var cars : [String: Int] = ["bwm":3,"Honda":1,"Lexus":12] for (key,value) in cars { print(key) // print(value) }
?、Swift 初学者第 16 部分 - 整数、浮点数、双精度数

Swift for Beginners Part 15 - Arrays & Dictionaries

如何声明 整型、浮点型、双精度 如果将两个不同类型进行转换

演示代码 ?、Swift 初学者第 16 部分 - 整数、浮点数、双精度数 // numbers var a : Int? = 1 // Int var b : Double? = 1.00 // double var c : Float? = 1.000000000001 // float //类型不一致 的相加 //var result = a! + Int(b!) // 或者修改另外一个变量 var result = Double(a!) + b! if let vlaue = b { print(vlaue) }
?、Swift 初学者第 17 部分 - 库和框架

Swift for Beginners Part 17 - Libraries & Frameworks

第三方库 是别人基于系统的框架 进行开发封装而成的 框架 也就是系统的框架/库

演示代码 ?、Swift 初学者第 17 部分 - 库和框架 import Foundation // Libraries-Frameworks // 库 框架 // 系统的框架 import StoreKit // UI工具包 import UIKit // 第三方库 比如 Google广告 // AdMob //import GoogleMobileAds let button = UIButton()
?、Swift 初学者第 18 部分 - 命名约定

Swift for Beginners Part 18 - Naming Conventions

代码的风格样式

演示代码 ?、Swift 初学者第 18 部分 - 命名约定 import Foundation // 变量 // 下划线 var number_of_bank_accounts = "" // 驼峰 var numberOfBankAccounts = "" // 函数 func is_larger_than_five(){} func isLargerThanFive(){} // 类 class BigPerson { let name = "" } var joe = BigPerson()
?、Swift 初学者第 19 部分 - 类型别名

Swift for Beginners Part 18 - Naming Conventions

通过一个指定类型的字符串来 说明 类型别名是如何使用的

演示代码 ?、Swift 初学者第 19 部分 - 类型别名 import Foundation // Typealias // 类型别名 //var code : String = "" // typealias Code = String var code : Code = "" // 验证代码 - 字符串 //func validateCode(code: String) { func validateCode(code: Code) { print("验证代码") } validateCode(code: code) // 验证地址 - 字典 //var address : [String : String] = ["" : ""] typealias Address = [String : String] var address : Address = ["":""] //func validateAddress(address: [String : String]) { func validateAddress(address: Address) { print("验证地址") } validateAddress(address: address) //验证方法 - 闭包 // 接受一个字符串参数 返回一个bool类型 通过闭包回调 //var validateFunction: ((String)-> (Bool)) ? // 使用 Typealias // 促销码验证功能 typealias PromoCodeValidationFunction = ((String)-> (Bool))? var validateFunction : PromoCodeValidationFunction = { code in if code == "123" { return true } return false } //var validateFunction1 : PromoCodeValidationFunction // //var validateFunction2 : PromoCodeValidationFunction // //var validateFunction3 : PromoCodeValidationFunction func yhdidEnterCode(code: String) { let result = validateFunction?(code) print(result) } yhdidEnterCode(code: "124")
?、Swift 初学者第 20 部分 - 三元运算符和返回语句

Swift for Beginners Part 20 - Ternary Operator & Return Statement

通过一个案例 判断一个数是否大于5 讲解三元运算符是什么

演示代码 ?、Swift 初学者第 20 部分 - 三元运算符和返回语句 import Foundation // 是否大于5的函数 func isBiggerThanFive(number: Int) -> Bool { // 三目运算符 // 是否大于5 如果大于5 返回 true 否则返回false if result = number > 5 ? true : false return result // if number > 5 { // return true // } // else // { // return false // } } func randomNumber() -> Int{ let x = 5 // return x > 3 ? 12 : 2 let result = x > 3 ? 12 : 2 return result }
?、Swift 初学者第 21 部分 - 数学函数

Swift for Beginners Part 21 - Math Functions

通过代码演示 数学的加减乘除

演示代码 ?、Swift 初学者第 21 部分 - 数学函数 import Foundation var x = 3 var y = 2 //var y = 2.123 var result = x + y var result1 = x - y var result2 = x / y var result3 = x * y var a = 30 var b = 10 // 4 * 7 = 28 余数2 var resultab = a % b if resultab == 0 { print("整除") } else { print("不能整除 \(resultab)") }
?、Swift 初学者第 22 部分 - 搜索和排序

Swift for Beginners Part 22 - Searching & Sorting

遍历一个数组

演示代码 ?、Swift 初学者第 22 部分 - 搜索和排序 import Foundation import Darwin // Searching & Sorting // 搜索和排序 var numbers = [1,2,3,4,5,6,7,12,13,3,5] // 通过一个函数 查找数字是否存在数组里面 func isNumberInArray(number: Int,array: [Int]) -> Bool { // for in 循环 for x in array { if x == number { return true } } return false } let result = isNumberInArray(number:8,array:numbers) print(result)
?、Swift 初学者第 23 部分 - 总结

Swift for Beginners Part 23 - Wrapping Up

使用类、继承、协议 说明一下社区的例子

演示代码 ?、Swift 初学者第 23 部分 - 总结 import Foundation // summary // 地址数据源 protocol AddressDataSource { func myAddress() -> String } // 小区 class Neighborhood { let homes : [Home] = [] } // 房屋 class Home : AddressDataSource { let rooms: [Room] = [] func myAddress() -> String { return "123 Main Serett" } } // 房间 class Room { var color = "blue" var width : Int = 12 var length : Double = 32.5 init(){ self.width = 12 self.length = 32.5 } let area : Int = width * Int(length) func getArea() -> Int { guard let vlaue = area else { return 0 } return vlaue } // 房间是否在二楼 func isOnSecondFloor() -> Bool { return false } }


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #iOS #三元运算