Swift function, two names for one parameter -


this question has answer here:

i have noticed methods e.g. init(nibname nibname: string?, bundle nibbundle: nsbundle?) has 2 "names" 1 parameter except first 1 not possible use inside method. in case not able use bundle can use nibbundle. example, when call super.init(nibname: nibname, bundle: bundle) error "use of unresolved identifier 'bundle'".

my question is: (double named parameter) for? how use properly?

edit: obvious external parameter names thing. have subclass of uiviewcontroller , override following method. don't nibbundle gets from? apparently not defined in function header.

override init(nibname nibnameornil: string?, bundle nibbundleornil: nsbundle?) {    super.init(nibname: nibnameornil, bundle: nibbundleornil)    let somebundle = nibbundle    print(somebundle) } 

from apple's documentation:

sometimes it’s useful name each parameter when call function, indicate purpose of each argument pass function.

if want users of function provide parameter names when call function, define external parameter name each parameter, in addition local parameter name. write external parameter name before local parameter name supports, separated space:

func somefunction(externalparametername localparametername: int) {     // function body goes here, , can use localparametername     // refer argument value parameter } 

shorthand external parameter names

if want provide external parameter name function parameter, , local parameter name appropriate name use, not need write same name twice parameter. instead, write name once, , prefix name hash symbol (#). tells swift use name both local parameter name , external parameter name.

https://developer.apple.com/library/ios/documentation/swift/conceptual/swift_programming_language/functions.html


Comments

Popular posts from this blog

dns - How To Use Custom Nameserver On Free Cloudflare? -

python - Pygame screen.blit not working -

c# - Web API response xml language -