optional variable with ternary operator

Hey,

i am using ternary operator with optional variable. like below ex.

*var number:Int?**let result = number > 0 ? 1 : 2 *

*here i am getting this waring : comparison operators with optionals were
removed from the Swift Standard Library. Consider refactoring the code to
use the non-optional operators*
Note : i must need to use ternary operator for checking.

Regards
Suresh Kansujiya

Well, you’re not allowed to compare optionals any more. You can try binding the value to an Int, so that it’s not an optional anymore:

if let number = number {
  let result = number > 0 ? 1 : 2
}

Either way, you’ll have to decide what you think should happen when number is nil.

Saagar Jha

···

On May 8, 2017, at 00:36, Suresh Kansujiya via swift-evolution <swift-evolution@swift.org> wrote:

Hey,

i am using ternary operator with optional variable. like below ex.

var number:Int?
let result = number > 0 ? 1 : 2
here i am getting this waring : comparison operators with optionals were removed from the Swift Standard Library. Consider refactoring the code to use the non-optional operators

Note : i must need to use ternary operator for checking.

Regards
Suresh Kansujiya
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

I believe this falls under "future directions" for comparison reform.

Here's an example of a short term solution: optionalequality.swift · GitHub

-- E, who moved this from SE to Swift Users

···

On May 8, 2017, at 10:13 AM, Saagar Jha via swift-evolution <swift-evolution@swift.org> wrote:

Well, you’re not allowed to compare optionals any more. You can try binding the value to an Int, so that it’s not an optional anymore:

if let number = number {
  let result = number > 0 ? 1 : 2
}

Either way, you’ll have to decide what you think should happen when number is nil.

Saagar Jha

On May 8, 2017, at 00:36, Suresh Kansujiya via swift-evolution <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:

Hey,

i am using ternary operator with optional variable. like below ex.

var number:Int?
let result = number > 0 ? 1 : 2
here i am getting this waring : comparison operators with optionals were removed from the Swift Standard Library. Consider refactoring the code to use the non-optional operators

Note : i must need to use ternary operator for checking.

Regards
Suresh Kansujiya
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org <mailto:swift-evolution@swift.org>
https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

I wonder if it has ever been allowed? I am using Xcode and it never allows
that.
For you specific question, you can use

var number:Int?

let result = (number ?? -1) > 0 ? 1 : 2

Zhaoxin

···

On Tue, May 9, 2017 at 1:39 AM, Erica Sadun via swift-users < swift-users@swift.org> wrote:

I believe this falls under "future directions" for comparison reform.

Here's an example of a short term solution: erica’s gists · GitHub
77b110e17e51dbea7d6934e6582f627f

-- E, who moved this from SE to Swift Users

On May 8, 2017, at 10:13 AM, Saagar Jha via swift-evolution < > swift-evolution@swift.org> wrote:

Well, you’re not allowed to compare optionals any more. You can try
binding the value to an Int, so that it’s not an optional anymore:

if let number = number {
let result = number > 0 ? 1 : 2
}

Either way, you’ll have to decide what you think should happen when number
is nil.

Saagar Jha

On May 8, 2017, at 00:36, Suresh Kansujiya via swift-evolution < > swift-evolution@swift.org> wrote:

Hey,

i am using ternary operator with optional variable. like below ex.

*var number:Int?**let result = number > 0 ? 1 : 2 *

*here i am getting this waring : comparison operators with optionals were
removed from the Swift Standard Library. Consider refactoring the code to
use the non-optional operators*
Note : i must need to use ternary operator for checking.

Regards
Suresh Kansujiya
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

This functionality was removed via SE-0121, back in the Swift 3 timeframe.

Saagar Jha

···

On May 8, 2017, at 19:49, Zhao Xin <owenzx@gmail.com> wrote:

I wonder if it has ever been allowed? I am using Xcode and it never allows that.
For you specific question, you can use

var number:Int?
let result = (number ?? -1) > 0 ? 1 : 2

Zhaoxin

On Tue, May 9, 2017 at 1:39 AM, Erica Sadun via swift-users <swift-users@swift.org <mailto:swift-users@swift.org>> wrote:
I believe this falls under "future directions" for comparison reform.

Here's an example of a short term solution: optionalequality.swift · GitHub

-- E, who moved this from SE to Swift Users

On May 8, 2017, at 10:13 AM, Saagar Jha via swift-evolution <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:

Well, you’re not allowed to compare optionals any more. You can try binding the value to an Int, so that it’s not an optional anymore:

if let number = number {
  let result = number > 0 ? 1 : 2
}

Either way, you’ll have to decide what you think should happen when number is nil.

Saagar Jha

On May 8, 2017, at 00:36, Suresh Kansujiya via swift-evolution <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:

Hey,

i am using ternary operator with optional variable. like below ex.

var number:Int?
let result = number > 0 ? 1 : 2
here i am getting this waring : comparison operators with optionals were removed from the Swift Standard Library. Consider refactoring the code to use the non-optional operators

Note : i must need to use ternary operator for checking.

Regards
Suresh Kansujiya
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org <mailto:swift-evolution@swift.org>
https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org <mailto:swift-evolution@swift.org>
https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-users mailing list
swift-users@swift.org <mailto:swift-users@swift.org>
https://lists.swift.org/mailman/listinfo/swift-users