Swift基础语法学习总结
Swift高级语法学习总结
Swift语法总结补充(一)

1. 可选类型是一种类型,String?就是Optional<String>,所以函数参数也可以声明为它
2. a??b??c 如果a有值返回a,a为nil返回b,b也也为nil,前面的整体结果就是nil返回c.条件是??前面的都必须是optional的,??后面的类型必须和??前面的一致,结果等价于三目运算符a!=nil?a!:b
3. 遵从GeneratorType协议的对象有一个next方法可以用来遍历,你可以自定义generator遵循generatorType协议,自己就可以根据这个方法做循环,你在next方法中写好遍历的顺序就好.
4. 遵从SequenceType协议的对象可以用for in来循环,每个SequenceType对象里面包含对应着一个generator,也可以获取generator后做while循环,也可以直接写for in循环,for in出来每项的值就是generator中next方法的返回值
5. 区间运算符...和..<其实是Range<T>类型的对象,这个对象有一个generate方法,返回的是RangeGenerator<T>类型结构体,它遵循GeneratorType协议,所以...和..< 也能做for in 循环
6. 数组过滤方法可以用闭包,如:oldArray.filter{ $0 > 30 },数组还有个根据数组值计算的的方法,oldArray.reduce(1,combine: {$0 + $1}) 结果就是1和数组中的每个元素相加
7. Int和string都有map方法,someName.map{name in "Hello,\(name)"}??"Hello world!" name是个可选类型,你不需要做可选绑定,如fil果name是nil,这个map方法返回的值也是nil
8. 函数的柯里化就是多参函数变成一个参数调用的返回值是函数,再调用的这个函数传入第二个参数,这中间得到的函数叫外部这个函数的偏函数,函数柯里化只需要把函数的多个参数分别写在不同的括号里就可以了
9. 在类命名访问成员方法,得到的是一个可以函数柯里化的函数,第一个参数是类对应的对象,后面的参数就是这个函数应该有的参数
10. swift的枚举可以有相关值(就是传参),有相关值的两个枚举值不能用==比较,需要自己重载==运算符,而普通的枚举是可以通过==比较的
11. 枚举是可以有原始值的(默认值),可以是String,Character,Int,Float类型的,如果是Int后面的枚举会递增,通过rowValue可以获取到原始值
12. 由于swift初始化方法的安全检查太严格,在设置类似于数据源数组的时候可以用lazy 声明,并用闭包返回值
13. Any表示任何类型除了方法类型,AnyObject表示任何class类型的实例
14. 在协议前加@objc表示协议可选,它只对class有效;在方法和属性前加optional表示属性和方法可选protocol<SomeProtocol,AnotherProtocol>就可以表示遵循这两个协议的对象

Swift语法总结补充(一)的更多相关文章

  1. ios -- 教你如何轻松学习Swift语法(一)

    目前随着公司开发模式的变更,swift也显得越发重要,相对来说,swift语言更加简洁,严谨.但对于我来说,感觉swift细节的处理很繁琐,可能是还没适应的缘故吧.基本每写一句代码,都要对变量的数据类 ...

  2. Swift语法入门

    正文参考: https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Progra ...

  3. ios -- 教你如何轻松学习Swift语法(三) 完结篇

    前言:swift语法基础篇(二)来了,想学习swift的朋友可以拿去参考哦,有兴趣可以相互探讨,共同学习哦.      一.自动引用计数   1.自动引用计数工作机制      1.1 swift和o ...

  4. ios -- 教你如何轻松学习Swift语法(二)

    前言:swift语法基础篇(二)来了,想学习swift的朋友可以拿去参考哦,有兴趣可以相互探讨,共同学习哦.      一.可选类型(重点内容)   1.什么是可选类型?        1.1在OC开 ...

  5. Swift翻译之-Swift语法入门 Swift语法介绍

    目录[-] Hello world - Swift 简单赋值 控制流 函数与闭包 对象和类 枚举与结构 协议和扩展 泛型 2014.6.3日,苹果公布最新编程语言Swift,Swift是一种新的编程语 ...

  6. Swift语法

    Swift语法 标签(空格分隔): Swift 1.打印输出语句 println("Hello, Swift!") 注意每行代码后面无需添加分号作为结束 2.简单值 let---常 ...

  7. swift 语法 - 以及学习资料

    附上一些swift的一下学习资料: 1.Swift语法介绍官方英文版:The Swift Programming Language 2.Swift与Objective-C相互调用Using Swift ...

  8. Swift语法之 ---- ?和!区别

    1.常量和变量 Swift语言中是用let来定义常量,并且要初始化.var来定义变量,在let或者var后面申明类型,冒号+空格,然后再加上类型名称. 2.optional(可选)变量 可选变量用于处 ...

  9. Swift语法基础入门三(函数, 闭包)

    Swift语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: ...

随机推荐

  1. Android 仿土巴兔选择效果

    1,前两天在群里看到有人在讨论土巴兔的选择装修风格的效果,自己也想实现,果断百度一下,有些好的文章,就花了些时间来分析了下,先看看别人土巴兔原装的功能 2,可以看到,基本上可以使用一个vviewpag ...

  2. (转)Aspone.Cells设置Cell数据格式 Setting Display Formats of Numbers and Dates

    Setting Display Formats Using Microsoft Excel: Right-click on any desired cell and select Format Cel ...

  3. Spring容器中的Bean

    一,配置合作者的Bean Bean设置的属性值是容器中的另一个Bean实力,使用<ref.../>元素,可制定一个bean属性,该属性用于指定容器中其他Bean实例的id属性 <be ...

  4. opencv的一次性配置

    最近做自然场景中的文字识别,想尝试些图像处理方法,感觉每一种方法都需要自己写很麻烦,自然就想到了强大的开源的跨平台计算机视觉库OpenCv.我用的是opencv2.4.9版本,VS用的是2010,他们 ...

  5. 在Debian下安装ibus输入法

    sudo apt-get install ibus ibus-pinyin im-switch sudo apt-get install ibus-googlepinyin im-switch -s ...

  6. Windows应用层网络模块扫盲

           说到Windows应用层网络通信不得不提winsock,winsock是工作在TCP/IP层的应用层(TCP/IP层分为主机到网络层[比特].网络互联层[数据帧].传输层[数据包].应用 ...

  7. OpenCV 简介

    自版本OpenCV2.2开始,OpenCV库便被划分为多个模块.这些模块编译成库文件后,位于lib文件夹中. opencv_core模块,包含核心功能,尤其是底层数据结构和算法函数. opencv_i ...

  8. NOIP201302表达式求值

    NOIP201302表达式求值 题目描述 Description 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值. 输入描述 Input Description 输入仅有一行,为需要你计 ...

  9. 华硕本本重装系统后出现can not open file c:\RECOVERY.DAT

    华硕本本重装系统后出现can not open file c:\RECOVERY.DAT很多网友会觉得困惑,不知道为什么会这样,下面我就为大家来解决这个问题,方法一: 这个问题就出在华硕自带系统都是装 ...

  10. weblogic从应用服务器找不到主应用服务器

    报错信息: weblogic.cluster.replication.ApplicationUnavailableException: WebApp with contextPath: not fou ...