#おい俺!コードが見にくいぞ!
swiftを今は初学者向けの本で学習をしているのだが、どうもサンプルコードを自分で書くと、コードが読みづらい。
というのも、ページの都合上改行しないといけない文がある為、「これが正しいコード」として認識をしていたのである。
例えば例として、こんなコードを書く。
import UIKit
class ViewController: UIViewController {
//スーパークラスUIViewControllerを継承しているclass ViewController
@IBOutlet weak var label: UILabel!
@IBAction func sayHello(_ sender: Any) {
label.text = "こんにちは"
//
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
でね、このコードのデコボコ具合ってなんか謎な訳ですよ。
初学者には。
コードを書くと意味分からないところで改行されるし。
だから見やすいコードっていうのは
import UIKit
class ViewController: UIViewController {
//スーパークラスUIViewControllerを継承しているclass ViewController
@IBOutlet weak var label: UILabel!
@IBAction func sayHello(_ sender: Any) {
label.text = "こんにちは"
//
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
っていうもんだと思う訳ですよ。
整理されてるやん!って。
で、コードにエラーが出て知り合いのエンジニアさんにコードを送ると
「インデントのズレを直したいね」と言われた。
インデントのズレ?
##インデントってなんだ
ウィキペディアによると
字下げスタイルまたはインデントスタイル(英: Indent style)とは、プログラミングにおいてプログラムの構造を明らかにするために、コードのブロックの字下げをどうするかを決めたものである。本項ではC言語やそれに類似した言語を主に扱うが、他のプログラミング言語(特に括弧を使用してブロックを記述する言語)にも適用可能である。字下げスタイルはプログラミング作法の一部である。
とある。
いや、下げる意味なんてないやん!
いいえ、おおありでした。
###インデントは国語でいうところの段落!?
「今日は晴れでした楽しかったです明日も晴れるといいな。」
という文章があるとしよう。
この文章は果たして読みやすいだろうか。
「今日は、晴れでした。楽しかったです。明日も晴れるといいな。」なら読みやすい。
つまり先ほどの
import UIKit
class ViewController: UIViewController {
//スーパークラスUIViewControllerを継承しているclass ViewController
@IBOutlet weak var label: UILabel!
@IBAction func sayHello(_ sender: Any) {
label.text = "こんにちは"
//
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
は、「今日は晴れでした楽しかったです明日も晴れるといいな。」という文章状態。
どこが段落で「。」があるのか分からない状態である
一方で
import UIKit
class ViewController: UIViewController {
//スーパークラスUIViewControllerを継承しているclass ViewController
@IBOutlet weak var label: UILabel!
@IBAction func sayHello(_ sender: Any) {
label.text = "こんにちは"
//
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
だと
import UIKit
class ViewController: UIViewController { ←段落1
//スーパークラスUIViewControllerを継承しているclass ViewController
@IBOutlet weak var label: UILabel!
@IBAction func sayHello(_ sender: Any) { ←段落2
label.text = "こんにちは"
//
} ←段落2の終わり
override func viewDidLoad() { ←段落3
super.viewDidLoad()
// Do any additional setup after loading the view.
} ←段落3の終わり
}←段落1の終わり
となっている。
確かに、段落1の始まりと終わりの文字の銭湯が同じ位置にあるし、段落2と3の始まりと終わりも同じ位置にある。
これが全部同じ位置に配置されていると、どれ段落の始まりで終わりかが分からない。
今までなんとなくモッコリさせればいいと思っていたけど、これでスッキリ!!