They then followed up six months later (December 2017) by raising that to the top 10% of San Francisco salaries:
> It started to increasingly seem like an arbitrary choice, and if we were going to make one such, why not go for the best and the top?
> That’s what we did. Starting 2018, Basecamp is paying everyone as though they live in San Francisco and work for a software company that pays in the top 10% of that market (compared to base pay + bonus, but not options).
No, you use checked instead of blah. If blah is type 'Blah?', Checked is type 'Blah'.
Edit to add: And unless something has changed since I last tried it, you can also just shadow blah so that inside that scope you're referring to the unwrapped one:
if let blah = blah { /* use blah here, it's unwrapped */ }
It looks kind of silly, but I have used it where there was no better name for the unwrapped value.
I don't think it's trying to be syntactically better than C++. It's an improvement in semantics. Once you unwrap an optional with "if let", it cannot cause an access violation.
You seem to be insisting on using ! and then blaming the language for letting you shoot your foot off with it...
No, you don't seem to be getting what I'm saying. I'm saying don't use !, and showing you how to avoid using it in a common pattern. Using 'if let' instead of ! does give you compile time verification of correctness.
! is there for the small number of cases where that's not possible. And it makes it much more obvious where you've got a potential problem, because the '!' is a literal code smell. You can't really do that with c++.
Ever since the guard statement was introduced I think you should never, ever use the ! as operator. It still has some sense when using as a type, for example for IBOutlets.
> It started to increasingly seem like an arbitrary choice, and if we were going to make one such, why not go for the best and the top?
> That’s what we did. Starting 2018, Basecamp is paying everyone as though they live in San Francisco and work for a software company that pays in the top 10% of that market (compared to base pay + bonus, but not options).
Source: https://m.signalvnoise.com/basecamp-doesnt-employ-anyone-in-...