快速语言中’#’标记的含义是什么?

快速语言中’#’标记的含义是什么?,第1张

概述我看到这样的代码: func hello(name: String, #helloMessage: String) -> String { return "\(helloMessage), \(name)." } 我的问题是#标记在参数名称之前是什么意思?这是否意味着在调用函数时必须指定参数? 此外,任何人都可以告诉我与功能的区别没有这个#标记?代码示例是非常受欢迎的. 更新(Swif 我看到这样的代码:
func hello(name: String,#helloMessage: String) -> String {     return "\(helloMessage),\(name)." }

我的问题是#标记在参数名称之前是什么意思?这是否意味着在调用函数时必须指定参数?

此外,任何人都可以告诉我与功能的区别没有这个#标记?代码示例是非常受欢迎的.

更新(Swift 3.0)

第一个参数的签名的默认行为发生了巨大变化.要了解参数标签(例如“外部参数”)和参数名称(例如“本地参数”)的工作原理,请阅读Apple的“Swift”书中的“功能参数标签和参数名称”一章.

一些例子:

func someFunction(parametername: Int) { parametername }someFunction(parametername: 5) // argument label not specifIEdfunc someFunction(argumentLabel parametername: Int) { parametername }someFunction(argumentLabel: 5) // argument label specifIEdfunc someFunction(_ parametername: Int) { parametername }someFunction(5) // argument label omitted

方法和函数之间的这种行为没有区别.

更新(Swift 2. *)

以下描述的功能已被弃用,需要将参数名称两次写入以获得与之前的哈希符号相同的行为.

更新(示例)

对于函数:当调用函数时,某些参数的目的不清楚时,您将为这些参数提供外部名称.

func someFunction(parametername: Int) { parametername }someFunction(5) // What is the meaning of "5"? func someFunction(externalParametername parametername: Int) { parametername }someFunction(externalParametername: 5) // Now it's clear.

但是,如果外部和本地名称相同,则只需在参数名称之前编写一个哈希符号.

func someFunction(#parametername: Int) { parametername }// It's actually like:// func someFunction(parametername parametername: Int) { parametername }someFunction(parametername: 5)

对于方法:默认情况下,第一个参数名称只是本地的(像函数一样),但是第二个和后续的参数名称都是本地的和外部的(就像你在参数名之前写一个哈希符号一样,这个隐含在这里)

class SomeClass {    func someMethoDWith(firstParameter: Int,andSecondParameter: Int) { ... }}SomeClass().someMethoDWith(5,andSecondParameter: 10)

您可以使用#(或添加一个明确的外部名称)作为方法的第一个参数,但它不符合Objective-C风格的调用.

class SomeClass {    func someMethoDWith(#firstParameter: Int,andSecondParameter: Int) { ... }}SomeClass().someMethoDWith(firstParameter: 5,andSecondParameter: 10)

原来的答案

If you want to provIDe an external parameter name for a function
parameter,and the local parameter name is already an appropriate name
to use,you do not need to write the same name twice for that
parameter. Instead,write the name once,and prefix the name with a
hash symbol (#). This tells Swift to use that name as both the local
parameter name and the external parameter name.

摘录自:苹果公司“Swift编程语言”iBooks. https://itunes.apple.com/ru/book/swift-programming-language/id881256329?l=en&mt=11

总结

以上是内存溢出为你收集整理的快速语言中’#’标记的含义是什么?全部内容,希望文章能够帮你解决快速语言中’#’标记的含义是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1045508.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存