在Swift2.0下:
问题提出
func greet(name:String, day:String)->String{ return "Hello \(name), today is \(day)" }
该怎么调用该函数呢?
是第一种
greet(name:"Bob", day: "Saturday")
还是第二种
greet("Bob", day: "Saturday")
第一种,会报如下错误
而第二种是正确的。
Why?
我们来看一下同版本的Objective-C的声明方式
- (NSString *)greet:(NSString *)name day:(NSString *)day;
然后我们通过
[self greet:@"Bob" day:@"Saturday"];
调用,和刚刚第一种方式调用一致。
从中,我们可以看出,
func greet(name:String, day:String)->
第一个参数name,只是参数名,而第二个参数day即是函数名,又是参数名
所以,如果要实现
greet(name:"Bob", day: "Saturday")
调用方式,我们函数得这样写:
func greet(name name:String, day:String)->String{ return "Hello \(name), today is \(day)" }
或者这样写,两者都是等效的
func greet(name name:String, day day:String)->String{ return "Hello \(name), today is \(day)" }
不过此时会有一个警告
说day参数重复了
我们可以将参数名改为_day,就没有警告了
func greet(name name:String, day _day:String)->String{ return "Hello \(name), today is \(_day)" }
最后还是建议采用通用的官方做法
相关推荐
首先,Swift函数的定义使用关键字`func`,接着是函数名,然后是圆括号内的参数列表。例如: ```swift func greet(name: String) { print("Hello, \(name)!") } ``` 这个函数名为`greet`,它接受一个名为`name`的...
这篇学习笔记主要涵盖了Swift的基础知识和关键特性,旨在帮助初学者理解并掌握这种现代、强大且易读的语言。 一、Swift语言基础 Swift的语法简洁明了,易于理解。它引入了类型推断,使得编写代码时可以减少冗余的...
### Swift编程语言程序基础学习笔记 Swift是一种现代且高效的编程语言,主要用于开发iOS、macOS、watchOS和tvOS的应用程序。本篇笔记将重点介绍Swift的基础知识点,涵盖代码注释、变量定义、数据类型、条件控制、...
14. **函数柯里化(Currying)**:虽然Swift并不直接支持柯里化,但可以通过闭包实现类似功能,创建多参数函数的单参数版本。 15. **元组(Tuples)**:元组用于组合多个值,可以在函数返回多种类型的数据或临时...
在Swift中,构造器重载的条件与函数重载类似,包括但不限于:函数名相同,但参数列表不同,或者返回值类型不同,或者外部参数名不同。对于构造器,我们可以根据参数数量、参数类型或参数的外部名称来实现重载。 在...
首先,我们可以从“learning-swift-source-code-master”这个目录名推测,这可能是一个GitHub仓库的克隆或下载,里面包含了作者在学习Swift源码过程中的一些项目、笔记或者示例代码。通常,这样的学习资源会按照模块...
总之,Swift中的元组提供了一种灵活的方式来组合和传递不同类型的数据,同时也提供了清晰的代码表示,特别是作为函数返回值时,增强了代码的可读性和实用性。通过了解和熟练使用元组,开发者可以更高效地编写Swift...
- 更强的类型系统:例如,函数参数名与参数标签分离,使得API更清晰。 - 更严格的错误处理:引入了`throws`和`try`关键字,强制显式处理错误。 - 采用Unicode标准:Swift 3对标识符进行了Unicode规范化,使得国际...
Objective-C 在iOS应用开发中占据重要地位,虽然Swift逐渐成为主流,但Objective-C仍然有其独特的优势和广泛的应用。在开发iOS应用时,可以使用Objective-C编写Cocoa Touch框架的应用程序,不仅限于APP,还包括GAME...
"泊学付费网站Swift资料.zip"这个压缩包文件显然包含了与Swift编程相关的学习资源,可能是课程笔记、教程、示例代码或者练习项目,旨在帮助初学者或有经验的开发者提升Swift编程技能。 Swift的特点包括语法简洁、...
9. **类与继承**:Swift支持面向对象编程,包括类、继承、属性、方法、初始化器和析构函数。 10. **GCD (Grand Central Dispatch)**:Swift内置对Apple的并行处理框架GCD的支持,便于进行多线程和异步编程。 在...
EPUB格式是一种常见的电子书格式,支持文本、图像和其他多媒体内容,非常适合技术书籍,因为它允许用户搜索、高亮和做笔记,有助于深入学习和理解Swift编程语言。 通过使用EPUBReader,开发者可以随时随地学习Swift...
它属于解释型语言,这意味着它的代码在运行时会被逐行解释为机器语言,相比编译型语言(如C、C++、Go、Swift)运行速度较慢,但开发效率更高,且具备跨平台的可移植性。 Python有多个解释器,包括CPython(官方标准...
在iOS开发的学习过程中,理解和运用Objective-C语言进行编程是基础,掌握了OC之后,开发者可以开始深入学习iOS SDK提供的各种框架与API,从而能够开发出功能丰富、交互良好且性能优化的应用程序。随着技术的不断更新...
在“OwnResearchs:记录所思所想”这个项目中,我们可以看出这是一份个人的研究笔记,主要聚焦于编程语言Swift的学习与探索。虽然标签上提及了“JavaScript”,但根据标题和描述,我们主要讨论的内容将围绕Swift进行...
标题中的“我的学习心得与总结”表明这是一份个人的学习笔记或者经验分享,可能是作者在IT领域的学习过程中积累的知识和感悟。描述与标签相同,强调了作者希望得到他人的反馈和指正,暗示了这份资料可能包含了一些...
【CS193P笔记】是一份针对"CS193P"课程的详细学习资料,这门课程是斯坦福大学开设的iPhone与iPad编程入门课程。这份笔记涵盖了iOS开发的基础知识,包括Objective-C编程语言、Swift语言(可能在后续版本中涉及)、...
这个压缩包可能包含了Dennis Chukwuyenum第一周学习iOS开发的笔记、代码示例和其他相关资源。 首先,Swift的特点在于它的易读性,语法简洁明了,这使得新开发者能够快速上手。它摒弃了C家族语言的一些复杂特性,如...
《Slox》是由著名程序员鲍勃·尼斯特罗姆(Bob Nystrom...不过,由于描述中提到这是个爱好项目,可能意味着部分内容是作者个人的学习笔记或探索,因此在学习过程中应保持批判性思维,结合其他权威资料进行验证和学习。
项目名"ScratchingSwift"暗示这是一个记录Swift学习过程的项目,"便笺簿"则可能意味着它是以一种方便查找和学习的方式组织的。 在压缩包文件列表中,"ScratchingSwift-master"可能代表项目的主分支,通常在GitHub等...