一、什么是外部参数名?

浅显地说,外部参数名就是在调用一个方法时要在方法的参数前面加上一个特定的名字,目的是便于阅读代码,提高维护效率。

二、在最新的Xcode中,外部参数名的性质与用法如下

性质:

函数可同时有局部名称(内部使用)和外部名称(调用函数时使用),方法的参数也类似,不过方法和函数的局部名称和外部名称的默认行为是不一样的

Swift中默认给第一个参数名称一个局部参数名称,第二和后续的参数局部参数名称和外部参数名称默认相同

用法示例:

在其他语言中如果我们这样定义一个方法:

我们一般这样调用:

而Swift中这种写法是有错误的,

如上的定义方法,系统报错如下:

应该这样调用:

所谓argument labels 即 外部参数名。

我在第一次接触到这个东西时不知所措,因为我并没有显示的制定外部参数名,但是系统给添加了默认的与形参相同的外部参数名。但是奇怪的是第一个参数x却没有默认制定外部参数名。

原因是:

Swift中默认给第一个参数名称一个局部参数名称,第二和后续的参数局部参数名称和外部参数名称默认相同。

修改方法的外部参数名称

有时为方法的第一个参数提供外部参数名也是有用的,可以显示在参数前添加#号
如果不想为方法的第二个及后续参数提供外部参数名称,在前面使用下划线 (_) 作为该参数的显式外部名称。

1、比如,你想要这样调用方法:

应该这样定义方法:

2、又比如,你想要这样调用方法:

应该这样定义方法:

3、或者显示制定其他的外部参数名

这样定义:

这样调用:

参考页面:

http://blog.csdn.net/huangchentao/article/details/32715179

转载于:https://www.cnblogs.com/zeyang/p/4398066.html

Swift开发经验——外部参数名相关推荐

  1. swift 方法的局部和外部参数名

    一.什么是外部参数名? 浅显地说,外部参数名就是在调用一个方法时要在方法的参数前面加上一个特定的名字,目的是便于阅读代码,提高维护效率. 二.在最新的Xcode中,外部参数名的性质与用法如下 性质: ...

  2. Swift 1.1语言函数参数的特殊情况本地参数名外部参数名

    Swift 1.1语言函数参数的特殊情况本地参数名外部参数名 7.4  函数参数的特殊情况 声明定义有参函数时,为函数的每一个参数都定义了参数名称.根据参数名定义的形式不同,函数参数包括本地参数和外部 ...

  3. swift中_的用法,忽略默认参数名。

    swift中默认参数名除了第一个之外,其他的默认是不忽略的,但是如果在参数的名字前面加上_,就可以忽略这个参数名了,虽然有些麻烦,但是这种定义也挺好,而且不想知道名字或者不想让别人知道名字的或者不用让 ...

  4. ​Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数

    ​Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数 7.4.4  为外部参数设置默认值 开发者也可以对外部参数设置默认值.这时,调用的时候,也可以省略参数传递本文选自Swift ...

  5. Class,表名,表单参数名关系

    为什么80%的码农都做不了架构师?>>>    表名:os_china_posts Class名:OsChinaPost 表单的参数名:os_china_post 这三者之间如何转换 ...

  6. java 反射 参数名_JAVA 8 反射获取参数名

    前言 在JDK8之前javac编译是不会把构造器和方法的参数名编译进class中,如果需要获取参数名,可以在方法上加上注解,反射获取注解的值从而获取参数名,比如Jackson的@JsonCreator ...

  7. mybatis 默认参数名#{0}、#{arg0}、#{param1},以及@Param

    前言 略 @Param指定参数名 mapper: User getUserByIdAndName(@Param("id") int id,@Param("name&quo ...

  8. MVC路由学习:自定义路由参数(用户看不到参数名),重新定义路由规则

    MVC路由:由于路由global中注册了,在程序第一次运行时,在MVC会自动生成路由,类似于字典的格式缓存下来,但路由生成的规则又是怎样的呢? 路由生成规则是: 1>更具你定义的的顺序查找路由规 ...

  9. JAVA通过反射获取方法真实参数名

    默认情况下,我们是无法获取到方法中参数的名称,通过反射机制也只能获取到类似于arg0,arg1这样表示参数顺序的"参数名" 这样当我们需要使用方法的实际参数时,比方说spring自 ...

  10. 根据变量值取得变量的参数名

    写作于2017年2月17日. Java和ABAP只能根据字符串通过反射获得变量的metadata,像标题描述的这个需求听起来有点怪.需求是Mervin实现Range search时需要根据range ...

最新文章

  1. pandas高级处理-分组与聚合
  2. App混合应用Appium自动化测试框架技术难点
  3. 设置IIS缓存的方法
  4. android分享到新浪微博客户端吗,Android调用手机新浪微博客户端分享
  5. Windows Server 2012 下安装MySQL 5.6 X64位包
  6. SAP ABAP实用技巧介绍系列之 ABAP XSLT match keyword
  7. Java堆空间,本机堆和内存问题
  8. 看《Linux入门讲座》随记
  9. 猴子选大王--约瑟夫问题浅析
  10. img 居中_解决img标签下方出现的小空隙
  11. 【C++笔记】表达式 语句
  12. ORALCE 两表结构更新
  13. 子类和父类对象在进行类型转换时_不一样的面向对象(三)
  14. java程序结构化设计_项目二:基于Java的结构化程序设计
  15. java代码实现顺序队列
  16. java 抓取网页_Java抓取网页数据
  17. 16QAM调制的仿真及其Python实现的代码(超级详细)
  18. Apache日志格式与配置
  19. SVG—最简单的SVG动画
  20. Access根据出生日期计算年龄_Access处理数据

热门文章

  1. 编程语言对高手没有差别,对低手差别太明显
  2. C读取INI的代码实例
  3. 继承与data member之多重继承
  4. 线程池合适的线程数量
  5. allure 测试报告本地打开_自动化测试报告太丑?信息实用的Allure Report测试报告拯救你...
  6. 解决 fatal: unable to access xxx: Encountered end of
  7. 实现带有拉普拉斯修正的朴素贝叶斯_数据科学 | 算法工程师必备的机器学习贝叶斯分类器...
  8. oracle 安装包_【Oracle监控】-Spotlight On Oracle安装和使用
  9. 新手linux版本,六款适用于新手的非Ubuntu Linux发行版
  10. 数据库交易记录--如何添加审计信息到闪回归档数据以替换操作日志表