`
zhong871004
  • 浏览: 62865 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Swift 学习笔记--函数与函数名

 
阅读更多

在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)"
}

 

最后还是建议采用通用的官方做法
 

  • 大小: 20 KB
  • 大小: 19.5 KB
分享到:
评论

相关推荐

    swift 学习笔记 之 函数 编程题

    首先,Swift函数的定义使用关键字`func`,接着是函数名,然后是圆括号内的参数列表。例如: ```swift func greet(name: String) { print("Hello, \(name)!") } ``` 这个函数名为`greet`,它接受一个名为`name`的...

    swift学习笔记

    这篇学习笔记主要涵盖了Swift的基础知识和关键特性,旨在帮助初学者理解并掌握这种现代、强大且易读的语言。 一、Swift语言基础 Swift的语法简洁明了,易于理解。它引入了类型推断,使得编写代码时可以减少冗余的...

    swift编程语言程序基础学习笔记

    ### Swift编程语言程序基础学习笔记 Swift是一种现代且高效的编程语言,主要用于开发iOS、macOS、watchOS和tvOS的应用程序。本篇笔记将重点介绍Swift的基础知识点,涵盖代码注释、变量定义、数据类型、条件控制、...

    Swifter-Swift 开发者必备 Tips (第四版)

    14. **函数柯里化(Currying)**:虽然Swift并不直接支持柯里化,但可以通过闭包实现类似功能,创建多参数函数的单参数版本。 15. **元组(Tuples)**:元组用于组合多个值,可以在函数返回多种类型的数据或临时...

    Swift学习笔记之构造器重载

    在Swift中,构造器重载的条件与函数重载类似,包括但不限于:函数名相同,但参数列表不同,或者返回值类型不同,或者外部参数名不同。对于构造器,我们可以根据参数数量、参数类型或参数的外部名称来实现重载。 在...

    Swift源代码学习记录,只上传部分源码文件

    首先,我们可以从“learning-swift-source-code-master”这个目录名推测,这可能是一个GitHub仓库的克隆或下载,里面包含了作者在学习Swift源码过程中的一些项目、笔记或者示例代码。通常,这样的学习资源会按照模块...

    Swift学习笔记之元组(tuples)

    总之,Swift中的元组提供了一种灵活的方式来组合和传递不同类型的数据,同时也提供了清晰的代码表示,特别是作为函数返回值时,增强了代码的可读性和实用性。通过了解和熟练使用元组,开发者可以更高效地编写Swift...

    Swift性能优化分析.pdf、Swift3.0中文版文档.pdf、swift4新功能.pdf

    - 更强的类型系统:例如,函数参数名与参数标签分离,使得API更清晰。 - 更严格的错误处理:引入了`throws`和`try`关键字,强制显式处理错误。 - 采用Unicode标准:Swift 3对标识符进行了Unicode规范化,使得国际...

    Objective-C 学习笔记

    Objective-C 在iOS应用开发中占据重要地位,虽然Swift逐渐成为主流,但Objective-C仍然有其独特的优势和广泛的应用。在开发iOS应用时,可以使用Objective-C编写Cocoa Touch框架的应用程序,不仅限于APP,还包括GAME...

    泊学付费网站Swift资料.zip

    "泊学付费网站Swift资料.zip"这个压缩包文件显然包含了与Swift编程相关的学习资源,可能是课程笔记、教程、示例代码或者练习项目,旨在帮助初学者或有经验的开发者提升Swift编程技能。 Swift的特点包括语法简洁、...

    Swift语言基础知识及相关案例.zip

    9. **类与继承**:Swift支持面向对象编程,包括类、继承、属性、方法、初始化器和析构函数。 10. **GCD (Grand Central Dispatch)**:Swift内置对Apple的并行处理框架GCD的支持,便于进行多线程和异步编程。 在...

    苹果The Swift Programming Language和阅读器

    EPUB格式是一种常见的电子书格式,支持文本、图像和其他多媒体内容,非常适合技术书籍,因为它允许用户搜索、高亮和做笔记,有助于深入学习和理解Swift编程语言。 通过使用EPUBReader,开发者可以随时随地学习Swift...

    python学习笔记.doc

    它属于解释型语言,这意味着它的代码在运行时会被逐行解释为机器语言,相比编译型语言(如C、C++、Go、Swift)运行速度较慢,但开发效率更高,且具备跨平台的可移植性。 Python有多个解释器,包括CPython(官方标准...

    iOS开发教程(大神笔记)

    在iOS开发的学习过程中,理解和运用Objective-C语言进行编程是基础,掌握了OC之后,开发者可以开始深入学习iOS SDK提供的各种框架与API,从而能够开发出功能丰富、交互良好且性能优化的应用程序。随着技术的不断更新...

    OwnResearchs:记录所思所想

    在“OwnResearchs:记录所思所想”这个项目中,我们可以看出这是一份个人的研究笔记,主要聚焦于编程语言Swift的学习与探索。虽然标签上提及了“JavaScript”,但根据标题和描述,我们主要讨论的内容将围绕Swift进行...

    我的学习心得与总结。希望大家能够指出我的错误

    标题中的“我的学习心得与总结”表明这是一份个人的学习笔记或者经验分享,可能是作者在IT领域的学习过程中积累的知识和感悟。描述与标签相同,强调了作者希望得到他人的反馈和指正,暗示了这份资料可能包含了一些...

    CS193P笔

    【CS193P笔记】是一份针对"CS193P"课程的详细学习资料,这门课程是斯坦福大学开设的iPhone与iPad编程入门课程。这份笔记涵盖了iOS开发的基础知识,包括Objective-C编程语言、Swift语言(可能在后续版本中涉及)、...

    chukwuyenum.dennis-iOS-week-one

    这个压缩包可能包含了Dennis Chukwuyenum第一周学习iOS开发的笔记、代码示例和其他相关资源。 首先,Swift的特点在于它的易读性,语法简洁明了,这使得新开发者能够快速上手。它摒弃了C家族语言的一些复杂特性,如...

    Slox:鲍勃·尼斯特罗姆(Bob Nystrom)书中内容的快速变化

    《Slox》是由著名程序员鲍勃·尼斯特罗姆(Bob Nystrom...不过,由于描述中提到这是个爱好项目,可能意味着部分内容是作者个人的学习笔记或探索,因此在学习过程中应保持批判性思维,结合其他权威资料进行验证和学习。

    ScratchingSwift:便笺簿,方便我的快速代码

    项目名"ScratchingSwift"暗示这是一个记录Swift学习过程的项目,"便笺簿"则可能意味着它是以一种方便查找和学习的方式组织的。 在压缩包文件列表中,"ScratchingSwift-master"可能代表项目的主分支,通常在GitHub等...

Global site tag (gtag.js) - Google Analytics