程序员

Swift One Day

2016-06-14  本文已影响0人  抖腿宅还爱古风

今天学了 swift,第一次写 swift真心不习惯.. 索性把知识点都总结一下,方便以后的阅读

正题开始:

swift中是没有 main函数的慨念,不像OC中 main函数为程序入口;

swift所创建的文件后缀为 .swift    OC中文件后缀为 .m .h

swift中可以不写分号,但是在一行中有多条语句的时候必须要写

swift中采用的 pringt函数进行打印,代替了OC中得 NSLog语句。在print函数中没有占位符:@d 等等的概念,如果想要插入参数 采用的是 \( )

        在 swift中 变量和常量的表示为 var / let。所有类型都依据这两个来创建

        在 swift中不存在隐式转换,不同的数据类型不能做运算,在做运算之前必须强制类型转换。列如:let a1:Int = 11 // 整形              let a2:Double = 10.01 //浮点型                            ** 在运算两个的时候 就要注意强制转换类型: let sum = a1 +Int(a2)

       在 swift中BOOL只有两个值: true / false 

       在 swift中字符类型用  character表示  比如: let a:Character = "x"

       在 swift中字符串类型不是一个对象,而是一个结构体

      在 swift中获取字符串的长度 首先要得到 characters属性 比如:var str1 = "string"      print  ("长度 ====\(str1.characters.count)" )         拼接字符串采用的是  +=  符号,如果拼接的是一个字符采用的是 append函数  比如:var str2 = "xxx"    str1 += str2   print (str1)  打印出来的就是  stringxxx ;    拼接字符:  let char:Chararcter = "o"   str1.append(char)  print(str1)  打印出来的就是  stringo

      如果要判断两个字符串是否相同,OC中是 iseq语句 swift中直接用 == 来判断 。   判断前缀是否相等  .hasPrefix( )  判断后缀是否相等 .hasSuffix( )  。 大小写的转化分别用  .uppercaseString / .lowercaseString

       字符串也是支持遍历的  在 for-in中 不用明确指出类型

/*数组*/    swift中判断数组是可变还是不可变 ,是通过 let / var 来区分。创建数组必须明确的指出数组里面元素的类型  比如: var arr:[String] = ["哈哈","嘻嘻","呵呵"]  。             增加元素采用 .append  比如:arr.append("嘻嘻")  。                                                                      删除元素采用 .remove  其中 .removeAll(keepCapacity: Bool )  和  .removeAll( ) 是不一样的 虽然都是移除所有元素,但是前者保留了数组内存,后者删除了内存。                                      遍历数组分为两种: 普通遍历和元组遍历                                                                                      for item in arr1 { print(item) }                                                                                                             for (index,value) in arr1.enumerate( ) { print("index = \(index),value = \(value)") }

/*字典*/    swift中字典的创建跟数组大同小异,字典的类型是 Dictionary。创建一个字典必须明确的指出元素的类型 比如:var dic:[String:AnyObject] = ["name":"xx","gender":"gg"]  增加和更新可以算一起,如果key值存在就是一个更新操作,不存在就是一个添加操作          删除操作通过 .remove进行,字典也同样支持遍历。与数组不同的是,字典的元组遍历是采用了 (key,value)                                                                                                                            比如:for (key,value) in dic1.enumerate( )  { print("key = \(key),value =\(value)") }             字典可以合并,通过遍历合并。 获取所有的key值是 通过 .keys

/*可选类型*/ 是 swift特有的一个类型。如果一个值可能为 nil,也可能有值。那么这个变量/常量就是一个可选类型,用 ?当做标识。如果打印出来有 Optional字样,说明打印的是一个可选类型,可选类型不能直接参与运算,在参与之前必须强制解包,用 !。并且在进行强制解包之前必须确定这个可选值不为 nil。在 model中基本数据类型如果为可选类型,必须给其一个默认值

/*枚举*/  如果枚举关联的一个整形数据的话,后面的枚举值会根据前面的赋值累加。      比如: enum Month:Int {  case  Janauary = 1,February,Match } 后面分别为 1,2,3             如果枚举关联的基本数据类型中非整形数据的话,必须给出所有的枚举关联值,即每一个都给定值。如果一个枚举类型已经制定,下次赋值的时候可以通过  .  的方式进行再次赋值,会省略前面的类型

/*空运算标识符*/  空运算标识符 ??   如果可选类型值不为空,会帮我们进行强制解包然后参与运算中,如果为nil 则提供一个默认值参与运算

/*循环*/ 在swift中没有 do-while循环,取代的是 repeat-while

      

    

上一篇下一篇

猜你喜欢

热点阅读