新しいプログラミング言語 Swift

Objective-Cに替わる新しいプログラミング言語Swiftの登場
WWDC2014で発表された新しいプログラミング言語Swiftでできることを紹介したいと思います。
今までとこれから
Swift使うとこんなにコードが短くなるぜという例です。
今まで
これから
確かにスマートですね。
言語ガイドをダウンロード
iBookでガイドを読めますのでダウンロードしてみましょう。
変数の宣言
varは変数、letは定数
var myVar = 42 myVar = 50 let myConst = 42
コントロール
if,switch,for-in,for,while,do-while
let individualScores = [76, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
if score > 50 {
teamScore += 3
} else {
teamScore += 1
}
}
関数とクロージャ
funcで関数の定義と代入
関数を定義して
func greet(name: String, day: String) -> String {
return "Hello \(name), today is \(day)."
}
greet("Bob", "Tuesday")
代入もできる。
func makeIncrementer() -> (Int -> Int) {
func addOne(number: Int) -> Int {
return 1 + number
}
return addOne
}
var increment = makeIncrementer()
increment(7)
オブジェクトとクラス
クラス定義してインスタンス化して利用
class Shape {
var numberOfSides = 0
func simpleDescription() -> String {
return "A shape with \(numberOfSides) sides."
}
}
var shape = Shape()
shape.numberOfSides = 7
列挙型と構造型
enum Suit {
case Spades, Hearts, Diamonds, Clubs
func simpleDescription() -> String {
switch self {
case .Spades:
return "spades"
case .Hearts:
return "hearts"
case .Diamonds:
return "diamonds"
case .Clubs:
return "clubs"
}
}
}
let hearts = Suit.Hearts
プロトコルと拡張
Javaでいうとインタフェースとアブストラクトに近いけど、プロパティを追加するとコンパイルエラーになるから違うかな。
protocol ExampleProtocol {
var simpleDescription: String { get }
mutating func adjust()
}
extension Int: ExampleProtocol {
var simpleDescription: String {
return "The number \(self)"
}
mutating func adjust() {
self += 42
}
}
7.simpleDescription
型アノテーション
変数に意味を持たせることができます。
var welcomeMessage: String
型セーフ、型インタフェース
暗黙の型変換
let meaningOfLife = 42 let pi = 3.14159 let anotherPi = 3 + 0.14159
タップル
let http404Error = (404, "Not Found")
アサーション
let age = -3 assert(age >= 0, "A person's age cannot be less than zero")
コレクション型
配列、辞書など
var shoppingList: String[] = ["Eggs", "Milk"] var airports: Dictionary<String, String> = ["TYO": "Tokyo", "DUB": "Dublin"]
まとめ
どこかで見たことある書き方が多く、とても憶えやすそうな言語仕様ですね!