swift 作为 IOS 开发的下一个主流语言(实际上目前的排行早已超过Objective-C),为 IOS 注入了新生命。但也不得不感慨其变化莫测,要跟上它的步伐,就得保持积极学习的态度,该系列会将自己总结的 swift 相关的比较重要而又比较独特的知识点和注意点与大家分享!
在 Xcode 8 的到来后,第三方插件的使用遭遇了阻碍,例如大牛王巍写的 VVdocument,但是苹果官网提供了可供使用的文档注释,可在函数头直接快捷键:cmd+option+/,便可立即生成函数文档注释,方便快捷。
除此之外,swift3.1 还提供了非常便捷的颜色选择快捷键:color+回车,d出一个颜色选择框,可自由选择颜色。
在需要加入代码标注(方便下次修改)的区域时,可使用://Todo:或者 //FIXME:
swift是强类型语言,不允许不同类型的数据的直接计算;
swift中不存在基本数据类型,都是结构体;
swift开发中,极少使用直接指定类型,通常都是自动推导;
在开发中,通常先使用let,在需要变化时,再改成var;
注意点:?一般用于定义,!解包准备计算。var的可选值默认为nil,let的可选值没有默认值。
强行解包:从可选值中获取对应的非空值,如果真的是nil,程序就会崩溃!程序员必须为每一个!负责,当然程序中应该少用!。由此,也就衍生出了几种对可选值的判断方式:
1. if 判断
这种方法会带来很多大括号,会使程序可读性和执行效率变低,一般不采用该方法。
func demo(x:Int?,y:Int?) { if x != nil && y != nil { print(x! + y!) }else{ print("x或y为nil") } }
补充一点:??是一个简单的三木运算符,如果有值,则使用值,如果没有值,使用??后面的值替代,?? *** 作符号的优先级较低,在使用的时候,最好加上括号。
func demo1(x:Int?,y:Int?) { print((x ?? 0) + (y ?? 0)) }
2. if let 连用
判断对象的值是否为nil,{} 内一定有值,可以直接使用,不需要解包。
func demo2(){ let oldname:String? = "飞哥" let oldAge:Int? = 23 if let name = oldname,let age = oldAge { print(name + String(age)) }else{ print("name或age为nil") } }
3. guard let
func demo3() { let oldname:String? = "飞哥" let oldAge:Int? = 23 // guard let 守护一定有值,如果没有直接返回 guard let name = oldname,let age = oldAge else { print("name或age为nil") return } // 代码执行至此,anme和age一定有值! // 通常判断是否有值之后,会做具体的逻辑实现,通常代码多! // 如果用 if let 凭空多了一层分支,guard 是降低分支层次的办法 // guard 的语法是swift2.0推出 print(name + String(age)) }
今天时间不多,先简单记录到这,下次我们继续!
总结以上是内存溢出为你收集整理的swift3.1 快速上手系列(一)全部内容,希望文章能够帮你解决swift3.1 快速上手系列(一)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)