基础很重要!很多人不重视,觉得会写功能即可.但是,基础扎实与否却决定着你后面的道路能否走的平坦,举个栗子,一个遇到逻辑只想到if判断的人囧,真的走不远~
1.常量变量这块:
1)可选类型的计算或者使用必须要解包,否则会报

2)let 常量只能赋值一次, 且使用前必须要初始化
否则会报

3)最常见的错误:强行解包且值为nil

4)可选类型的值默认为nil
5)三木计算

取巧写法(只执行前面条件,后面条件不管,加个空执行即可)

6)可选类型问号操作符

为了解决这种需要判断是否为空的情况,使用??操作符为其附默认空值


这跟java中在传参时使用@requestParam(defaultValue="0")差不多,就是给个没值的时候的初始值,但是有一点要注意,??优先级比+-/低,所以最好加括号*
6)if let/var
这是swift中以后可能最最常见的写法了,多条件用“,”连接

就是走一个值不为空的逻辑写法,跟??可以筛选着使用,具体意思不解释了,基本人人都懂
7) guard let/var

跟if let相反,else条件后{}输出的是不满足条件的逻辑,所以,一般用来执行长逻辑的判断
其实跟if aa == nil { return}效果一样,只不过swift加了个新关键字,为了让我们写的更爽
但是,需要注意的一点是:guard非空值作用域比if大!
8)for,注意可以反转

9)字符串长度计算

网友评论