先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
正文
元组内的值可以是任意类型,并不要求是相同类型。有了元组,函数的返回值就可以返回多个不同类型的值。
// 元组定义
// 1. 字面量定义
var tuple1 = (1, 2.0, "string", true)
// 2. 带参数标签的定义
var tuple2 = (parameter1:int, parameter2:double parameter3:String)
tuple2 = (1, 2.0, "string")
let tuple3 = (parameter1: 1, parameter2: "string")
// 元组取值
// 1. 序列号取值
tuple.0, tuple.1, tuple.2
// 2. 标签取值
tuple2.parameter1
tuple2.parameter2
3)可选类型
让程序更安全!
在OC中,有一种写法。
NSString *str = [obj getSomeStr] ?: @"";
为了保证str不是nil
,在赋值时确定一下。swift提供了可选类型,来处理可能缺失的情况。注意可选类型是一个类型。
var surveyAnswer: String? = "123"
// surveyAnswer 可选值为"123""
// 注意:可选类型为类型后面+?
构造器返回值可选值类型
let possibleNumber = "123"
let convertedNumber = Int(possibleNumber)
// 因为该构造器可能会失败,convertedNumber 被推测为类型 "Int?", 或者类型 "optional Int"
// 构造器就是构造函数, 在C++与Java中的叫法
使用if或者while可以进行判断是否有值。这个过程又叫做可选绑定
// 强制解包
let value = surveyAnswer!
// 强制解包如果没值,则会crash,因此使用强制解包要保证有值
// 可选绑定
// if语法在后面介绍
if let newstring = surveyAnswer {
}
// 隐式展开
// 在确定有值的时候,可以直接解包
var a:Int! = 10
var b:Int = a
// 疑问:已经确定有值,还用可选类型干嘛?如:
// var a:Int = 10
// 解答:用可选类型是因为可以使用nil,如果不是可选类型则不能使用nil。
4)值类型与引用类型
值类型:当其进行常量、变量赋值操作,或在函数/方法中传递时,会进行值拷贝。
引用类型:增加引用计数,不进行拷贝。
5)其他
5.1)类型别名:
swift
中不使用typedef
, 且有等号。
typealias AudioSample = UInt16
5.2)分号:
在swift中不用使用分号, 但是在同一行的两个语句使用分号.
2.3 运算符
1)空合运算符
如果