对于整个工程而言,我们不在需要编写main函数,因为这个工程本身就是一个入口。再者语句结尾也不要求使用分号,Swift利用换行来判断语句是否结束。
先说变量和常量的声明:Swift利用let来声明常量,var来声明变量。而且在声明时也不用显示的指明变量类型,不仅仅是简单的int、string类型,包括array和dictionary也不用显示声明类型。(需要注意的是,这里我们使用偏向C语言的int和string类型,而不再是我们在oc常用的nsstring类型)。
变量声明有一个地方没懂 谁知道告诉我,不知道下面这句话的意思
当使用“?”表示值可选?Var opitonalVar :String? = “hello”
遇到需要强制类型转换的时候有两种方式:
方法一:类型(变量\常量)
方法二:用圆括号包裹变量并且在变量前添加”\”
比较特殊的是字典和数组的声明也包含两种声明方式:
方法一:var dic = [“key”:”value,”key”:”value”] 或者 dict[“key”] = “value”
方法二:let dic = [“key”:”value,”key”:”value”]
比较可以知道二者区别在于定义常量还是变量,当定义为常量的时候不可以使用dic[“key”] = “value”进行操作。
循环语句:
整体而言最大的改动是在写循环条件的时候可以不写括号。但是循环体的大括号不可以省略。
对于if语句,判断条件可以和let、var同时使用,不过没有发现二者的区别,只是在官方文档上市说要用let,不过亲测用var不报错。
个人认为改动最多的switch语句(改的好不好用就不一定了)。条件分支不在紧紧只支持int类型判断,现在支持所有类型。而且switch每走完一个语句之后会自动跳出switch不需要再手动为每个分支写break,(但是会有一个问题,如果想多个分支走同样的语句不知道会有什么效果,暂时没有尝试)。如果不添加default分支将会报错。
对于oc中的for in的使用也有了一些特殊的尝试吧。循环查询字典的时候,可以使用如下方法来直接调用key value键值对:
For(key,value) in dict {
}
最后就是循环条件引入了一个新的特性:”…”和”..”。 在循环条件中也可以使用“..”来指定变量范围
使用”..”则不包括上限,使用”…”则包括上限