Swift小计

来源:互联网 发布:微信公众号php源代码 编辑:程序博客网 时间:2024/05/29 05:56

  REPL (Read-Eval-Print Loop “读取-求值-输出”循环,简称REPL

  设置环境:

  打开终端  sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

   运行  xcrun swift

   覆盖父类中的方法,需要使用 override 关键字

   @objc用来表示协议是可选的

   ? 表示改类型是可选的

   ! 表示强制解析 

     _ 表示通配符,代表任何值

   "~="表示操作符在一定范围内匹配

   is关键字 进行父类与子类之间的匹配和判断

   as关键字 检查对象类型是不是某个类的子类,并且想使用父类的属性或方法时,使用as关键字将判断的对象类型转换为父类型

通过“&”字符进行错误保护:运算符前添加“&”符号可以避免出错。例如,使用“&/”运算符代替“/”避免除以0的错误。

  -Overflow/ underflow检测:检测你的运算符是否会溢出或者下溢,可以利用“&”运算符处理

func hello(fromName name: String) {

    println("\(name) says hello to you!")
}
     fromName 为外部参数,如果要使外部参数和内部参数名称一样,只需要在name前面加 #
出于一些原因希望在函数中跳过外部参数名 ,为外部函数添加 _ 来解决
输入输出参数 inout, 操纵外部变量
var name1 = "Mr. Potato"
var name2 = "Mr. Roboto"
func nameSwap(inout name1: String, inout name2: String) {
    let oldName1 = name1
    name1 = name2
    name2 = oldName1
}
 
nameSwap(&name1, &name2)

如果想要有一个具有可选方法的协议,必须给协议加上一个@objc标签作为前缀(即使类不能兼容objective-C)。然后,给所有可选方法加上@optional标签作为前缀。
  1. @objc protocol Speaker { 
  2.   func Speak() 
  3.   @optional func TellJoke() 
  4. }



柯里化函数
柯里化(Currying),又称部分求值(Partial Evaluation),是一种函数式编程思想,就是把接受多个参数的函数转换成接收一个单一参数(最初函数的第一个参数)的函数,并且返回一个接受余下参数的新函数技术。

0 0
原创粉丝点击