Swift中允许的方法/函数名称

时间:2014-07-23 11:51:33

标签: ios function methods swift

这是一个由两部分组成的问题,到目前为止,我无法在“The Swift Programming Language”中找到答案。

第一个问题是:
允许哪些字符作为Swift中方法或函数的名称?
是否允许使用所有unicode字符?

问题的第二部分是:
是否有保留名称或字符等例外?
是否有某个官方列表?

我问的原因是我试图编写这样的函数而收到错误

func ?(object: AnyObject) -> AnyObject {
    // some function
    return object
}

但是当我尝试使用其他非拉丁字符(如ü,ä,ö)时,以下不会抛出错误

func fünctiön(object: AnyObject) -> AnyObject {
    // some function
    return object
}

所以,这让我很困惑。

2 个答案:

答案 0 :(得分:4)

参考书:

  

标识符以大写或小写字母A到Z开头,   一个下划线(_),一个非组合的字母数字Unicode字符   基本多语言平面,或基本外的字符   不在私人使用区域的多语言平面。第一次之后   字符,数字和组合Unicode字符也是允许的。

词汇结构部分实际列出了第一个字符和其他字符允许的所有Unicode范围。

原因很明显 - 编译器必须区分标识符和运算符。允许标识符中的标点字符会使标识符和操作符之间无法区分。

答案 1 :(得分:0)

关于问题的第二部分,文档有一个列表,目前是:

  

以下关键字已保留,不得用作   标识符,除非它们使用反引号进行转义,如上所述   在标识符中。

     

声明中使用的关键字:class,deinit,enum,extension,func,   import,init,let,protocol,static,struct,subscript,typealias,and   变种。

     

语句中使用的关键字:break,case,continue,default,do,   否则,通过,if,in,for,return,switch,where和while。

     

表达式和类型中使用的关键字:as,dynamicType,is,new,   超,自我,自我,类型,_ _ COLUMN _ _,_ _ FILE _ _,_ _ FUNCTION _ _,和   _ _ LINE _ _。

     

在特定上下文中保留的关键字:associativity,didSet,get,infix,inout,left,mutating,none,nonmutating,   operator,override,postfix,precedence,prefix,right,set,unowned,   无主(安全),无主(不安全),弱者和意志集。

     

在它们出现在语法中的上下文之外,它们可以用作标识符。

     

摘自:Apple Inc.“The Swift Programming Language。”iBooks。   https://itun.es/gb/jEUH0.l