版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/twlkyao/article/details/31350841

    在Swift中,"#"有一些妙用,这里将已经看到的妙用进行总结,希望能够帮助很多其它学习Swift的朋友。

    @Author: twlkyao转载或者引用请保留此行。

    1.配置外部參数名

    在函数(或者方法)的參数名前加入"#",能够使该參数拥有同样的本地參数名和外部參数名。
    注:在方法中。第二个及兴许的參数,默认是具有和内部參数一致的外部參数名的,仅仅有第一个參数没有,能够使用"#"符号来强制给第一个參数加入与本地參数名一致的外部參数名。可是不推荐。

    (1).函数

func incrementBy(amount: Int, #numberOfTimes: Int) {
count += amount * numberOfTimes
}

    numberOfTimes的本地參数名(仅仅能在函数内部使用)和外部參数名(在调用函数的时候作为标签使用)都是numberOfTimes。

    (2).方法

class Counter {
var count: Int = 0
func incrementBy(#amount: Int, numberOfTimes: Int) {
count += amount * numberOfTimes
}
}

    numberOfTimes默认具有本地參数名和外部參数名,amount没有外部參数名,使用"#"为amount强制指定外部參数名,在调用该方法的时候。必须使用外部參数名,否则会出现编译错误,提示缺少參数标签。
var counter = Counter()
counter.incrementBy(amount: 4, numberOfTimes: 5)
println(counter.count) // the result is 20

Swift——(四)Swift中"#"的妙用的更多相关文章

  1. Swift语言教程中文文档

    Swift语言教程中文文档 Swift语言教程(一)基础数据类型 Swift语言教程(二)基础数据类型 Swift语言教程(三)集合类型 Swift语言教程(四) 集合类型 Swift语言教程(五)控 ...

  2. 行走于Swift的世界中(转)

    从Swift正式公布到现在,我基本一直在关注和摸索Swift.对于一门新语言来说,开荒阶段的探索自然是激动人心的,但是很多时候,资料的缺失和细节的隐藏也让人着实苦恼.最近几天的感受是,Swift 并不 ...

  3. 在 Swift 專案中使用 Javascript:編寫一個將 Markdown 轉為 HTML 的編輯器

    原文:Using JavaScript in Swift Projects: Building a Markdown to HTML Editor 作者:GABRIEL THEODOROPOULOS ...

  4. 如何在Swift的代码中使用OC的代码, 在OC的代码中使用Swift的代码?

    https://www.cnblogs.com/upliver/p/5138160.html 如何在Swift的代码中使用OC的代码, 在OC的代码中使用Swift的代码? 随着苹果公司对Swift的 ...

  5. [翻译]使用Swift在Xcode中创建自定义控件

    使用Swift在Xcode中创建自定义控件 原文 IBDesignable and IBInspectable With IBDesignable and IBInspectable, develop ...

  6. swift内存管理中的引用计数

    在swift中,每一个对象都有生命周期,当生命周期结束会调用deinit()函数进行释放内存空间. 观察这一段代码: class Person{ var name: String var pet: P ...

  7. swift和OC中frame的小差异

    //1.0 OC中 CGRect .CGPoint.CGSize 的结构如下: struct CGRect { CGPoint origin; CGSize size; }; struct CGPoi ...

  8. 使用OC swift 截取路径中的最后的文件名

    使用 OC swift 截取路径中的最后的文件名 如何截取下面路径中最后的文件名 AppDelegate.swift /Users/XXX/Desktop/Swift/swift02/code/02- ...

  9. 《从零开始学Swift》学习笔记(Day 7)——Swift 2.0中的print函数几种重载形式

    原创文章,欢迎转载.转载请注明:关东升的博客 Swift 2.0中的print函数有4种重载形式: l   print(_:).输出变量或常量到控制台,并且换行. l   print(_:_:).输出 ...

随机推荐

  1. Node.js 本地Xhr取得Node.js服务端数据的例子

    本以为用XHR取Nodejs http出的一段文字很简单,因为xhr取值和nodejs http出文字都是好弄的,谁知一试不是这回事,中间有个关键步骤需要实现. nodejs http出文字显示在浏览 ...

  2. webstrom 中 plugins error 设置里 Languages & Frameworks里面没有JavaScript?

    不知道哪里不对 js突然不支持高亮 于是在设置里面找language & frameworks里面的JavaScript 选项 但是竟然没有JavaScript选项. 还有plugins er ...

  3. DBCC MEMORYSTATUS

    内存管理器 输出的第一节是内存管理器.此部分将显示 SQL Server 的总内存消耗. Memory Manager KB ------------------------------ ------ ...

  4. C# Socket.Connect连接请求超时机制

    介绍 您可能注意到了,.Net的System.Net.Sockets.TcpClient和System.Net.Sockets.Socket都没有直接为Connect/BeginConnect提供超时 ...

  5. Linux下实现文件双向同步

    修改的地方时:私钥和公约处. 其次 vi /root/.unison/default.prf 这个文件在这个位置 root = /tmp/test root = ssh://root@10.10.3. ...

  6. matplotlib画图实例:pyplot、pylab模块及作图參数

    http://blog.csdn.net/pipisorry/article/details/40005163 Matplotlib.pyplot画图实例 {使用pyplot模块} matplotli ...

  7. 【Mysql】 你会用 information_schema吗?

    示例 select * from information_schema.views 其中的views可以替换成以下的字段,以下未列举的一般的数据库操作工具,在information_schema后输入 ...

  8. android监听事件的方式

    1.匿名内部类 bt.setOnClickListener(new OnClickListener(){ @Overridepublic void onClick(View view){//Here ...

  9. java.lang.IllegalArgumentException: Request header is too large的解决方法

    <Connector port="8080" protocol="HTTP/1.1"               connectionTimeout=&q ...

  10. nginx反向代理做cache配置

    前序:请耐性子看完,前面的这个配置可以达到按后缀名进行缓存,但无法被purge.后面的配置可以被purge.具体实施方案按个人情况而定. 需要第三方的ngx_cache_purge模块:wget ht ...