Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
FamDav
Mar 29, 2008

Kobayashi posted:

I don't write code for my day job, so I'm much less knowledgeable than most of the people in this thread. I'm trying to get my head around optionals. At a high level, I think it's trying to prevent accidentally using a declared but uninitialized variable from crashing the program. So:

code:
var s1: String   // won't compile because there's no value?
var s2 = "value"  // OK, with String inferred? 
var s3: String?  // OK and essentially means "nil" right now?
Am I on the right track?

yes. You can think of String? as a class that can either have Some String or None.

In most languages you have to do something like

code:

var butts : String? = nil

if butts.isSome() {
  butts.getValue().doAThing()
}
whereas in swift, they effectively generate this logic for you when you do

code:
butts?.doAThing();
which is p nice imo

Adbot
ADBOT LOVES YOU

  • Locked thread