携手创造,一起生长!这是我参加「日新方案 8 月更文应战」的第15天,点击检查活动概况

最近在学习移动端开发,记载一下曾经端视角学习 IOS 开发的进程。我整理了 Swift4 的学习笔记

Swift4 初步知道

基于版本号:4.1.2

  • 基本数据类型

  • 常量 let ,变量 var

在一行中声明多个常量或变量,用逗号离隔

var a =3,b=4,c=5;

类型标示:如果声明的同时赋予初始值,则不需求类型标示

var Who:String  //声明一个String的变量Who
Who = "imaginecode"
println(Who)

变量与常量的命名

可以运用汉字、表情命名等恣意字符。但不能包含数学符号、箭头、连线与制表符,不能以数字最初

字符串插值

var apples = 10
var oranges = 4
println("I have \(apples + oranges) fruits") //占位符表明方法

注释

  • 双斜杠
  • 嵌套多行注释

类型转换

let a: UInt8 =10
let b: Uint6 = 100
print("\(UInt16(a)+b)")

类型别名 – typealias

typealias AudioSample = UInt16
var maxValue = AudioSample.min

元组

  • 将多个不同的值集合成一个数据
(true,"imagine","男")
(404,"Not Found")

特色:

  • 可以有恣意多个值

  • 不同的值可所以不同类型

  • 取元组数据

let registInfo = (isTrue:true,nickname:"imagine",gender:"男")
let (isTrue,nickname,gender) = registInfo
registInfo.isTrue // true
  • 运用下划线(_)疏忽部分 数值
let loginResult = (true,"imagine")
let (isLogin,_) = loginResult
if isLogin {
	print("success")
} 

Optionals 可选值

  • 或者是一个值,或者是没有值
  • 没有值时为nil
var imOptionalVariable:Int? //nil
imOptionalVariable = 12 //12

运算符

  • 赋值
let a = 2
  • 操作符
a + b
a += a //swift4 抛弃++
a +=2
a * b
a / b //b不能为0
a % b // b 不能为0
let d = 5.2,e = 1.7
d / e
d % e //也能运用浮点型进行求余
Int.max //检查Int类型支撑的最大值
Int.min //检查Int类型支撑的最小值
var c = 2
c+=1
//条件运算符
var score = 62
var rate = score > 60 ? "合格":"不合格"
  • nil聚合运算符
var userNickName :String?
userNickName = "imagine"
let outputName:String = userNickName != nil ? userNickName! : "Guest"
print("hello,"+outputName)
//改善
let outputName:String = userNickName ?? "Guest"
  • 区间运算符
//闭区间 [a,b]  表明:a...b
//前闭后开区间 [a,b) 表明:a..<b
  • for-in
for index in 1..<10
{
	index
	//index = 3 //error
}
//arr.count数组长度
let names = ["aaa","bbb","ccc"];
for i in 0..<names.count
{
	names[i]
}
  • 逻辑运算符
!a //非
a && b //与
a || b //或
区别“位运算符”
a & b  //按位与
a | b  //按位或

字符串

  • String和Character
//变量与常量字符串
var str1 = "aaa"
let str2 = "bbb" 
//创建空字符串
var emptyString = ""
var str2 = String() 
//字符串遍历
var str = "hello"
for c in str
{
    print(c)
}
//定义一个字符
var ch:Character = "!"
str.append(ch) //在字符串后边拼接一个字符
//字符串之间拼接
var str2 = "!!!"
str += str2 //hello!!!!
  • String操作
var str = "Hello"
//拼接
str + "imagine"
str
str += "imagine"
str
//字符串插值
print("123 \(str)")
//字符串比较
//按字典次序比较,不考虑长度
let str_a = "abc"
let str_b = "abc"
str_a == str_b
let str_c = "abd"
str_a < str_c
//前缀 Prefix 与 后缀 Suffix
//.hasPrefix and .hasSuffix
//计算前缀有 b 的个数
let names = [
    "a 1.aaa",
    "b 1.bbb",
    "b 2.bbb",
    "b 3.ccc"
]
var count = 0
for name in names {
    if name.hasPrefix("b"){
        count += count //3 times
    }
}
  • 导入Foundation 运用字符串的更多功能
import Foundation
var str = "hello"
str.capitalized //Hello 首字母大写
str.uppercased() //字母大写
str.lowercased() //字母小写
//split 
var str2 = "hello hhh"
str2.components(separatedBy: " ")