@autoclosure

在闭包前面加上@autoclosure

func or(first:Bool,@autoclosure second:()->Bool) -> Bool {
if first {
return true
}
else {
return second()
}
}

再来看下调用

or(2>3,second: 4>3)

这看起来既干净又方便理解,一看就知道2>3与4>3进行或运算。

@autoclosure:Apple为了让语法看起来更漂亮些,在Swift中为我们提供了这么一个神奇的东西@autoclosure,他可以让我们的表达式自动封装成一个闭包。

作者:槛内浊物
链接:https://www.jianshu.com/p/99ade4feb8c1
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

@autoclosure-可以让表达式自动封装成一个闭包:输入的是一个表达式的更多相关文章

  1. struts2各个功能详解(1)----参数自动封装和类型自动转换

    struts2里面的各个功能,现在确实都不清楚,完全属于新学! 通过前面的例子,有时就会疑问,这些jsp中的数据信息是怎么传送给action的?例如: <form action = " ...

  2. struts2(二) 表单参数自动封装和参数类型自动转换

    前篇文章对struts2的一个入门,重点是对struts2的架构图有一个大概的了解即可,之后的几篇文章,就是细化struts2,将struts2中的各种功能进行梳理,其实学完之后,对struts2的使 ...

  3. struts2(三)之表单参数自动封装与参数类型自动转换

    前言 对struts2的使用不外乎这几点,参数自动封装,拦截器的使用,数据校验,ognl表达(值栈和actionContext的讲解),struts2的标签,struts2的国际化, struts2的 ...

  4. Struts2学习(二)———— 表单参数自动封装和参数类型自动转换

    前篇文章对struts2的一个入门,重点是对struts2的架构图有一个大概的了解即可,之后的几篇文章,就是细化struts2,将struts2中的各种功能进行梳理,其实学完之后,对struts2的使 ...

  5. 在Eclipse中对自动封装的设定颜色

    在Eclipse中,对自动封装进行特别着色提醒的方法:windows-->Preference-->java-->Editor-->Syntax Coloring-->j ...

  6. SpringMVC 自动封装枚举类的方法

    springmvc默认无法自动封装枚举类,解决方法如下: 1.枚举类 public enum GoodsPromoteEnum { /** * 0 精品 */ fine("精品", ...

  7. 自动封装Servlet HttpServletRequest请求成为一个POJO对象

    自己写了个小工具类,将Servlet里面的HttpServletRequest请求封装成为一个POJO对象,可以复习一下Java的反射原理,开发中这个没什么用,毕竟都用MVC框架,框架都自带这种功能, ...

  8. struts中的请求数据自动封装

    Struts 2框架会将表单的参数以同名的方式设置给对应Action的属性中.该工作主要是由Parameters拦截器做的.而该拦截器中已经自动的实现了String到基本数据类型之间的转换工作.在st ...

  9. 不使用BeanUtils,利用Java反射机制:表单数据自动封装到JavaBean

    在百度搜“java反射 将表单数据自动封装到javabean ”,第一页显示的都是一样的代码,都是利用导入第三方jar包<commons-beanutils>和<commons-lo ...

随机推荐

  1. 用C语言实现Ping程序功能---转

    ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具.ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一模一样地传回给发送者,这 ...

  2. vue基础知识之vue-resource/axios

    Vue基础知识之vue-resource和axios(三)   vue-resource Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没 ...

  3. React+Three.js——PerspectiveCamera透视相机camera参数以及属性值探索

    因项目问题,对webgl进行了探索,当进行到3d相机时,对camera的up,position属性有部分难以理解的地方,因此做下了记录. 代码如下: import React, {Component} ...

  4. rest webapi 返回数据

    webapi可以直接返回一个对象,也可以返回json 一.返回一个对象例子 [System.Web.Mvc.AllowAnonymous] [System.Web.Http.HttpGet] publ ...

  5. 利用WebBrowser控件实现百度自动搜索

    (1)新建一个MFC对话框项目 (2)对话框中添加WebBrower控件,添加方法:点击菜单栏工具->选择工具箱项->在弹出的选择工具箱项对话框选择COM组件->Microsoft  ...

  6. JS 提交反斜杠\替换成正斜杠/

    js将字符串中所有反斜杠\替换成正斜杠/ 区分正斜杠与反斜杠: 正斜杠:http://.http紧跟着的斜杠,离手输入最近的斜杠,shift中间斜杠.45度角斜杠.正斜杠不需要转义 反斜杠:回车与空格 ...

  7. Bookstrap4 学习(一)

    容器 container 是最基本的lagyout 元素, 并且当使用默认的Grid 系统时, containers 是必须的. <div class="container" ...

  8. Ubuntu 16.04 开启BBR加速

    BBR(Bottleneck Bandwidth and RTT)是Google推出的一个提高网络利用率的算法,可以对网络进行加速,用来干什么大家心里都有B数 Ubuntu开启BBR的前提是内核版本必 ...

  9. 禁用F12和鼠标右键,防止查看控制台代码

    虽然是个治标不治本的办法,还是挺有用的(对Opera无效,Opera开始控制台是Ctrl+Shift+C) 在禁用同时,自身的代码健壮性也需要加强 // 屏蔽F12 document.onkeydow ...

  10. mac下打开hosts文件

    1打开控制台 输入vi(空格)/etc/hosts 进入hosts文件,输入i更改为编辑状态,更改完esc然后shift+:在输入wq保存退出 2打开Finder然后选择上面前往,到前往文件夹,输入/ ...