Learn Swift / viva Cocoa


Learn Swift / 第6章  定数と変数


「空白のつけ方」を追加しました。Feb. 18, 2016
末尾に、「命名規則」節を追加しました。Jan. 27, 2016

掲載開始日、2016年1月17日
最終更新日、2016年2月18日

home  目次  前へ  次へ  mail


定数と変数

 プログラミングでは、定数や変数と呼ばれる箱に、データ (data、数値・文字・記号) を入れて、管理します。

 定数は、データを入れ替えることのできない箱で、変数は、データを入れ替えることのできる箱です。なお、データは、値 (value、バリュー) と呼ばれることもあります。

 今までのプログラミング言語では、変数はよく使われましたが、定数はあまり使われませんでした。しかしSwift では、定数もよく使われます。

 定数は、let というキーワードで定義し、変数は、var というキーワードで定義します。

 定義とは、プログラムに、何々という定数、もしくは、変数がありますよ、と知らせる行為です。

 MyPlayground.playground を開いて、次のリストを記述してください。太字部分が追加するコードです。ダブルスラッシュ 「//」 で始まる、冒頭のコメント部分は省略しています。

import Cocoa

var str1: String = "Hello"
let str2: String = "こんにちは"
print(str1)
print(str2)

 デバッグエリアに、「Hello」と、「こんにちは」が、改行されて、表示されます。

var str1: String = "Hello"

 var キーワードで、これが変数であることを宣言しています。str1 は変数名です。変数名は、命名規則に従って、自由に決めることができます。命名規則については、この章の「命名規則」節で、詳しく説明します。続く、: String で、この変数が String (ストリング、文字列) 型であることを定義しています。「型」とは、データの種類のことです。Swift では、データの型を、必ず決めなければなりません。Swift には、多くの型が存在しますが、まずは、次の表の型が、分かっていれば、学習を進められるでしょう。

String文字列"おはよう" や "Hello"など
Int整数123 や 456 など
Double浮動小数点数1.23 など
Flot浮動小数点数1.23 など。Double より精度が低い
Bool真偽値true と false

 最後に、= "Hello" で、変数 str1 に "Hello" という文字列を設定しています。

let str2: String = "こんにちは"

 let キーワードで、これが定数であることを宣言しています。あとは変数 str1 の場合と同じです。定数は、このように、定義するときに、一度だけ、値を設定することができます。そしてそれ以降は、値を置き換えることは、できません。

 ためしに、次のリストのように、コードを追加してください。

import Cocoa

var str1: String = "Hello"
let str2: String = "こんにちは"
print(str1)
print(str2)
str1 = "Bye"
str2 = "さようなら"
print(str1)
print(str2)

 str2 = "さようなら" という行の左側に、赤い丸が表示されます。これは、この行に、エラーがあることを示しています。定数の値を変更しようとしたからです。

 エラーのある行を削除すると、デバッグエリアに、「Hello」、「こんにちは」、「Bye」、「こんにちは」、と、4行で、表示されます。

 なお、プレイグランドに、行番号を表示するには、Xcode メニューの Preferences... を選択します。表示される Preferences パネルで、Text Editing タブを選択して、Line numbers にチェックを入れます。設定が終わりましたら、Preferences パネルを閉じてください。


空白のつけ方

 プログラミングを始めた頃は、どこに空白をつけてよいのか、悩むことだろうと思います。プログラミング言語には「トークン」よばれる考え方があります。トークンとは、プログラミング言語における、単語や記号の最小単位のことです。このことを英語に置き換えて考えると、トークンは英単語のことになります。例えば、「This is a pen.」を「ThisisaPen.」とは書けません。また「Th isaP en.」とも書けません。なお、空白は必ず、半角英数字の空白でなければいけません。

 記号の場合は、通常、単独で意味をなしますから、その前後に、空白があってもなくても意味は同じです。例えば、「print ( "abc" )」も、「print( "abc" )」も、「print("abc")」も同じ意味になります。しかし Swift では、演算子と呼ばれる記号の前後では注意が必要です。例えば算術演算子「+」を使う場合には、前後の空白のあるなしを揃えなければいけません。つまり、「1 + 1」もしくは、「1+1」にしなければなりません。演算子の前後の一方にだけ、空白がある場合、つまり、「1 +1」や、「1+ 1」はエラーになります。演算子には代入演算子と呼ばれる「=」や、比較演算子や論理演算子などもあります。まだプログラミングに慣れていなくて、どの記号が演算子か分からないあいだは、記号の前後にも空白を入れるように統一しておく方が安全でしょう。

 記号の中でもダブルクォーテーション (引用符)「"」は、文字列を表すのに使われます。例えば、「"Swfit"」のようにダブルクォーテーションで囲まれた、単語や記号や数字は、文字列としてプログラムに認識されます。従って、ダブルクォーテーションの内側の空白も、文字列として解釈されます。つまり、「"Swift"」と、「" Swift "」は同じではありません。また、ダブルクォーテーションの間では、全角の空白、つまり日本語の空白も「"日 本 語"」のように使えます。

型推論

 次のリストのように、コードを変更します。

import Cocoa

var str1 = "Hello"
let str2 = "こんにちは"
print(str1)
print(str2)
str1 = "Bye"
print(str1)

 変数 str1 と、定数 str2 は、型が指定されていませんが、エラーもなく実行されます。

 これは、str1 と str2 が、定義時に与えられた初期値によって、型が推論され、決定されたからです。このことを、「型推論」といいます。

 ためしに、str1= "Bye" というコードを、str1 = 10 に変更してください。型が違うためにエラーになります。


命名規則

 定数名、変数名、関数名、クラス名などの、名前のことを、識別子 (identifier) と呼びます。識別子には、次の命名規則があります。

 上記のとおりに、識別子を命名すれば、プログラムは問題なく動きます。しかし、コードを読みやすくするために、次の取り決めがあります。

なお、このような、コードを読みやすくするための、コーディングのルールを、「慣習」と言います。

 今後、「名前は、自由に決められます。」といった場合は、この命名規則に従って、自由に決めることができる、という意味です。


お疲れ様でした。

 次章では、条件分岐について、学習します。


home  目次  前へ  次へ  mail


無断転載禁止
Copyright 2016. vivacocoa.jp All right reserved.