ExSwift icon indicating copy to clipboard operation
ExSwift copied to clipboard

Suggestion for Boolean Extension methods(Smalltalk style conditionals)

Open HallofFamer opened this issue 9 years ago • 1 comments

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?

HallofFamer avatar Dec 15 '15 07:12 HallofFamer

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

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

capnslipp avatar Aug 07 '16 20:08 capnslipp