pNre / ExSwift

A set of Swift extensions for standard types and classes.
Other
3.38k stars 318 forks source link

Suggestion for Boolean Extension methods(Smalltalk style conditionals) #147

Open HallofFamer opened 8 years ago

HallofFamer commented 8 years ago

Well lately I've been reading a book about smalltalk, and I find its object oriented boolean class very impressive, and it's the truly object oriented way to handle conditionals. A sample of smalltalk's conditionals is show below:

aBoolean
ifTrue: [someCode]
ifFalse: [otherCode]

In swift, the syntax can be something like this:

aBooolean.ifTrue{

}.ifFalse{

}

I tried to implement this in a C# library I am working on, but the language of C# has limitations on closure that you have to pass closure with syntax ifTrue(() => {}), rather than just ifTrue{}, which is a bit inconvenient. In Smalltalk, I know that it's possible to remove the parenthesis and arrow sign if closure is the last parameter in a function/method, which is very neat.

So what do you think? Will you consider implementing the extension methods ifTrue{} and ifFalse{} for boolean?

capnslipp commented 8 years ago

@HallofFamer What advantage does this have over the built-in syntax of:

if aBoolean {
    // someCode
} else {
    // otherCode
}