Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21081

インデントってなんだ?

$
0
0

おい俺!コードが見にくいぞ!

swiftを今は初学者向けの本で学習をしているのだが、どうもサンプルコードを自分で書くと、コードが読みづらい。
というのも、ページの都合上改行しないといけない文がある為、「これが正しいコード」として認識をしていたのである。

例えば例として、こんなコードを書く。

import UIKit

class ViewController: UIViewController {
//スーパークラスUIViewControllerを継承しているclass ViewController

   @IBOutlet weak var label: UILabel!
//   プロパティの宣言 outletはプロパティとして接続をしている

    @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!
//   プロパティの宣言 outletはプロパティとして接続をしている

@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!
//   プロパティの宣言 outletはプロパティとして接続をしている

@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!
//   プロパティの宣言 outletはプロパティとして接続をしている

    @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!
//   プロパティの宣言 outletはプロパティとして接続をしている

    @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の始まりと終わりも同じ位置にある。

これが全部同じ位置に配置されていると、どれ段落の始まりで終わりかが分からない。

今までなんとなくモッコリさせればいいと思っていたけど、これでスッキリ!!


Viewing all articles
Browse latest Browse all 21081

Trending Articles