[swift-users] Function conforming to a typealias

Adrian Zubarev adrian.zubarev at devandartist.com
Sat Feb 18 05:16:34 CST 2017


You’re welcome. I don’t think there is a better way of doing that. However you can build some wrappers with some shortcuts.

func createInstance<T>(of _: T.Type, _ istance: T) -> T {
     
    return istance
}

let myGreatFunc1 = createInstance(of: Function.self) {
     
    return "\($0) \($1)" // Or whatever
}


-- 
Adrian Zubarev
Sent with Airmail

Am 18. Februar 2017 um 12:05:57, Rien (rien at balancingrock.nl) schrieb:

It feels a bit strange to write it like that, but yes, that would work. Thanks!  

(It will prevent me from having to touch up old functions when adding more parameters to the signature as the project evolves)  

Regards,  
Rien  

Site: http://balancingrock.nl  
Blog: http://swiftrien.blogspot.com  
Github: http://github.com/Balancingrock  
Project: http://swiftfire.nl  





> On 18 Feb 2017, at 11:52, Adrian Zubarev <adrian.zubarev at devandartist.com> wrote:  
>  
> Not sure what you’re trying to solve there but you could use it like this with closures:  
>  
> typealias Function = (Int, Bool) -> String?  
>  
> let myGreatFunc1: Function = { _ in return nil /* or whatever you need there */ }  
> let myGreatFunc2: Function = { _ in return nil }  
>  
>  
>  
>  
> --  
> Adrian Zubarev  
> Sent with Airmail  
>  
> Am 18. Februar 2017 um 11:47:26, Rien via swift-users (swift-users at swift.org) schrieb:  
>  
>> I want to create a few functions that all have the same signature.  
>>  
>> The signature is defined in a typealias  
>>  
>> Is there any way to shortcut the function definition, or alternatively ensure that the function signature will always be equal to the typealias?  
>>  
>> Examplecode:  
>>  
>> typealias Mysig = (Int, Bool) -> String?  
>>  
>> func myGreatFunc1:Mysig {…}  
>>  
>> func myGreatFunc2:Mysig { …}  
>>  
>> Alternatively  
>>  
>> @conformsTo(Mysig)  
>> func myGreatFunc1(_ a:Int, _ b: Bool) -> String? {…}  
>>  
>> Regards,  
>> Rien  
>>  
>> Site: http://balancingrock.nl  
>> Blog: http://swiftrien.blogspot.com  
>> Github: http://github.com/Balancingrock  
>> Project: http://swiftfire.nl  
>>  
>>  
>>  
>>  
>>  
>> _______________________________________________  
>> swift-users mailing list  
>> swift-users at swift.org  
>> https://lists.swift.org/mailman/listinfo/swift-users  

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20170218/5fb21eb9/attachment.html>


More information about the swift-users mailing list