<p class="ql-block">.swift→扩展名</p><p class="ql-block">print("")[不需要分号,除非多个语句]</p><p class="ql-block">macOS→开发平台</p><p class="ql-block">Xcode→集成开发环境</p><p class="ql-block">Playgrounds=游乐场→学习软件</p><p class="ql-block"><span style="color:rgb(237, 35, 8);">var 变量名:类型=值</span></p><p class="ql-block"><span style="color:rgb(237, 35, 8);">let 常量名:类型=值</span></p><p class="ql-block">注释同以往</p><p class="ql-block"><span style="color:rgb(22, 126, 251);">if let =readLine(){print(" \(input)")→获取输入</span></p><p class="ql-block"><span style="color:rgb(237, 35, 8);">a+= 3; →等价于 a= a+ 3</span></p><p class="ql-block">[定义Float,Double不需要后缀]</p><p class="ql-block">String literal - 字符串字面量→let" "</p><p class="ql-block">multiLineString = """→多行三引号</p><p class="ql-block">转义字符\+0→空字符</p><p class="ql-block">t→水平制表符</p><p class="ql-block">n→换行符</p><p class="ql-block">r→回车符</p><p class="ql-block">🍵Extended string delimiter - 扩展字符串分隔符</p><p class="ql-block"><span style="color:rgb(1, 1, 1);">#" "#[#内不被转义]</span></p><p class="ql-block"><span style="color:rgb(237, 35, 8);">var existing变量名 = "字符串→清空原有字符串</span></p><p class="ql-block">变量名.("")→追加</p><p class="ql-block"><span style="color:rgb(57, 181, 74);">let length = 变量名.count→字符串字符长度</span></p><p class="ql-block"><span style="color:rgb(22, 126, 251);">let b= "\(a)运算等于\(类型(a)运算)"→转义括号内部表示内部不是字符串</span></p><p class="ql-block">||→逻辑或[短路特性,一个对就不往后了]</p><p class="ql-block">🍵empty=空的</p><p class="ql-block">var 变量名= [类型]()→空数组[有元素还是用[]]</p><p class="ql-block">repeating=重复</p><p class="ql-block"><span style="color:rgb(237, 35, 8);">变量名(repeating: 0,count: 5)→默认值,数量</span></p><p class="ql-block">[索引]→下标访问</p><p class="ql-block">for in→遍历</p><p class="ql-block">变量名: Set<类型> = ["元素"," "]</p><p class="ql-block">set.insert(元素)→添加元素[元素唯一]</p><p class="ql-block">set.remove(元素)→删除元素</p><p class="ql-block">集合名.contains(元素)→是否包含元素</p><p class="ql-block">:[String: Any]=["元素":"数据",]→字典</p><p class="ql-block"><span style="color:rgb(22, 126, 251);">变量名["元素"] = "数据"→添加包含数据的元素</span></p><p class="ql-block">simple=简单的</p><p class="ql-block">var simple变量名=["元素":"数据",]→简化字典语法</p><p class="ql-block">[String: Int]()→固定元素数据的类型()=空字典</p><p class="ql-block"><span style="color:rgb(237, 35, 8);">for (键, 值) in字典名{打印("\(键):\(值)")}</span></p><p class="ql-block">access=访问 modify=修改</p><p class="ql-block">traverse=横渡(遍历)</p><p class="ql-block">if 条件表达式 {→[不用小括号]</p><p class="ql-block">🍵condition=条件</p><p class="ql-block">🍵execute=执行</p><p class="ql-block">else if→可执行多个[跟在if/else if后]</p><p class="ql-block">🍵sequence=顺序</p><p class="ql-block">🍵multiple=多个</p><p class="ql-block">嵌套层次→允许</p><p class="ql-block">for 变量名 in 区间..→遍历区间</p><p class="ql-block">🍵condition=状态</p><p class="ql-block">while→检查条件再执行</p><p class="ql-block">repeat { } while condition→先执行一次再检查条件[同do while]</p><p class="ql-block">switch 变量名{case可区间...: 反应 default:反应}</p><p class="ql-block">🍵item=列举</p><p class="ql-block"><span style="color:rgb(237, 35, 8);">switch不存在隐式贯穿[执行分支不会继续下个分支]</span></p><p class="ql-block">fallthrough=默认处理方式→贯穿</p><p class="ql-block">case(1,_):_→任意值</p><p class="ql-block">axis=中心轴</p><p class="ql-block">内部可let/var绑定新量[case内部可用]</p><p class="ql-block">where→case添加额外条件</p><p class="ql-block">case a,b:→可匹配多个值</p><p class="ql-block">continue→循环语句跳过当次循环[if for]</p><p class="ql-block">break→中断条件→跳出当前循环[执行外部循环]</p><p class="ql-block">switch中break→阻止在当前case运行</p><p class="ql-block">guard=保护</p><p class="ql-block">guard 条件 else{不符合条件的反应return/break}符合条件的反应}</p><p class="ql-block">函数→暂空func</p><p class="ql-block">Closure=封闭性→闭包</p><p class="ql-block">.sorted=完成的;整理</p><p class="ql-block">数组名.sorted{ $0 < $1 }[升序数组内部]</p><p class="ql-block">🍵statements=声明</p><p class="ql-block">type=类型</p><p class="ql-block">performOperation=执行操作</p><p class="ql-block"><span style="color:rgb(237, 35, 8);">(by: <)→升序闭包</span></p><p class="ql-block">可定义常量名=运算符号→在要使用运算()前加常量名</p><p class="ql-block">closure定义成常量后可加()调用赋值的{" "}</p><p class="ql-block">let 常量名 = { (元素: 类型, ) -> Int in return 元素+元素 }</p><p class="ql-block">print(常量名(数据, ))→引用</p><p class="ql-block">@escaping ()→逃逸闭包</p><p class="ql-block">[weak self] in=虚弱的自我→避免循环引用</p><p class="ql-block">[unowned self]=无主的自我→同上[在init(){中用}]</p><p class="ql-block">enum枚举名{→枚举 </p><p class="ql-block">case=查看→+成员(定义类型)</p><p class="ql-block">Switch匹配枚举时要保证涵盖枚举所有成员;</p><p class="ql-block"><span style="color:rgb(22, 126, 251);">default分支用后可不涵盖</span></p><p class="ql-block">:CaseIterable=可迭代→协议</p><p class="ql-block">⭐product=结果</p><p class="ql-block">使用关联值→.成员(对应匹配类型的数据)</p><p class="ql-block">🍵venus=金星 mars=火星</p><p class="ql-block">earth=地球</p><p class="ql-block">jupiter=木星</p><p class="ql-block">Message=指令</p><p class="ql-block">status=状态</p><p class="ql-block">Arithmetic=算术表达式</p><p class="ql-block">indirect=附带迂回→递归声明枚举</p><p class="ql-block">struct=结构体</p><p class="ql-block">let 实例名 = 结构体名(属性值1, 属性值2...)→创建实例</p><p class="ql-block">mutating=使变化→修改结构体属性</p><p class="ql-block"><span style="color:rgb(237, 35, 8);">计算属性必须有get方法,若要修改计算属性,还需定义set方法.</span></p><p class="ql-block">class {里能有属性和方法:属性存数据,方法定义行为.</p><p class="ql-block">类名要大写开头[驼峰命名法]</p><p class="ql-block">访问属性和方法时,实例名后用点号,再跟属性或方法名.→指针</p><p class="ql-block">init→类构造器[初始化]</p><p class="ql-block">类是引用类型;结构体是值类型.</p><p class="ql-block">枚举赋值时要注意是值的复制,不是引用.</p>