guard letとif letの違い

アイホンホホアプリとかでswift書いてて思ったので。

swiftしてると言わずと知れたguard let if letが出てくる。

func guardFunc() {
		guard let hoge = Int("2020") else {
				print("hoge is nil")
				return
		}
		print("\(hoge)")
}

guardFunc()

if let hoge = Int("2020") {
		print("\(hoge)")
}else{
		print("hoge is nil")
}

if let でアンラップするのに比べて、guardは単純にオプショナルをアンラップするのに使う。
if let はその後のブロックでしか使えない。単純なアンラップだけでif letを使うと無駄にネストしてしまうのでよくない。
そもそもguard 文の中では、returnとかしないといけないので、guard が出て失敗したら処理がここで止まるんだなっていうことでコードが見やすくなる。