・Swiftに関する他の記事はこちら
Swift入門 勉強記録 その1 Swiftとは、Playground起動
変数
変数の定義は
var 変数名:型 = 値
だ。
文字列で試していこう。
文字列の型はStringだ。
1.下記のように入力してみる
import UIKit
var hello:String = "こんにちは"
println(hello)
画面右側に結果が表示された。
また、上部メニューから、
View → Assistant Editor → Show Assistant Editor
でコンソール画面を開き、結果を表示させることもできます。
2.変数の値を変更してみるぞ
var hello:String = "こんにちは"の次の行に1行追加した。
import UIKit
var hello:String = "こんにちは"
hello = "ニーハオ"
println(hello)
3.1行目を削除して、少し修正
import UIKit
var hello = "ニーハオ"
println(hello)
なんと、型を宣言していないのにエラーにならない!!!
これは型推測と呼ばれる機能のようだ。
コンパイラが変数の型を推測し、宣言してくれているのだ。
ダブルクォーテーションの中で文字を複数入力しているので、コンパイラが文字列だなと推測し、String型にしてくれているのだ。
結果として、型を宣言しなくてもエラーにならなかったのだ。
コンパイル時に型推測をしていることに注目です。
Objective-C以外詳しく知らないのだが、実行時に型を推測する言語もあるようだ。
その場合、文字列型に違う型の値を入れてしまうと、エラーになる。
Swiftはコンパイル時に型推測しているため、型に間違いがあった場合、
コンパイル時に気づくことができるので、不具合を含んだままアプリをリリースしてしまうことはありません。
例えば、下記のように入力してみましょう。
import UIKit
var hello = "ニーハオ"
hello = 0
println(hello)
文字列型の変数に数値を入力したため、エラーが表示されます。
Objective-Cでプログラミングするときと比較して、
プログラミング入力を減るがアプリの品質は落ちない。
また、入力量が少なくなるので、コードを読みやすくしてくれます。
文字列の結合
1.文字列を結合してみよう
下記のように入力してみよう。
import UIKit
var hello = "こんにちは"
hello = hello + " 世界"
println(hello)
文字列を+で結合できるのだ。
Objective-Cを学んだことがある人しかわからないが、
NSMutableStringを使ったり、stringWithFormat:を使って結合させるわずらわしさが軽減された。
さらに、+=を使って結合させることも可能だ。
import UIKit
var hello = "こんにちは"
hello += " 世界"
println(hello)
定数
値を変更しないものを変数で定義してしまうと、アクシデントで値を変更してしまい、不具合のもととなります。
値を変更しない場合は定数を追加ましょう。
定数の定義は
let 変数名:型 = 値
だ。
文字列で試していこう。
文字列の型はStringだ。
import UIKit
let hello:String = "こんにちは"
hello += " 世界"
println(hello)
残念。定数を変更しようとしているので、エラーだ。
hello += " 世界"
の行を削除すれば、エラーはなくなるぞ。
varとletの使い分けにより、Mutableか否かを制御できます。
※文字列の話から変わってしまうが、Objective-Cを学んだことがある人はNSArrayとNSMutableArrayなどMutableかどうかを使い分けていたと思いますが、varとletで制御できるようになるのでは。
変数で定義するか、定数で定義するか?
変更する必要がないなら、letで宣言したほうがいいです。
知らず知らずに変更してしまうことを防ぐことができます。
また、実行速度がvarを使う時よりも速いようだ。
SwiftのString型は値だ
下記のように入力してみよう
var hello = "hello"
var alternativeHello = hello
alternativeHello += ",and bye"
println(alternativeHello)
println(hello)
変数helloと変数alternativeHelloの結果が異なるぞ。
Objective-Cを使っていた人はString型を使うときは要注意だ。
NSStringの考えのままだと、やっちまうことになる。
・Swiftに関する他の記事はこちら
Swift入門 勉強記録 その1 Swiftとは、Playground起動