Introducing Swift
WWDC2014で
どんな言語でしょうか。Apple は
Swift is an innovative new programming language for Cocoa and Cocoa Touch. Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project―or for addition into your current app―because Swift code works side-by-side with Objective-C.
弾訳
「SwiftはCocoaおよびCocoa Touch用の革新的新言語です。コードを書くのはインタラクティブで楽しく,文法は簡潔ながら表現力が高く, アプリは超高速で動きます。SwiftはiOSおよびOS Xでいますぐ利用可能で, Objective-Cと並存可能なので, 既存のアプリへの追加もできます」
この口上だけ見ると,
本連載では,
- 注1)
- この連載は,
Software Design 2014年12月号に掲載されたものです。
Shut the F?ck up and Write Some Code!
読者の皆さんは,
しかし処理系であるXcodeも,
とりあえずFizzBuzz
というわけで,
本誌の読者であれば,
リスト1 とりあえず
for n in 1...100 {
if n % 15 == 0 {
println("FizzBuzz")
} else if n % 5 == 0 {
println("Buzz")
} else if n % 3 == 0 {
println("Fizz")
} else {
println(n)
}
}
このコード片を,
たしかに仕様どおりに動いているようです。
ここで,
- ① リスト2の内容のFizzBuzz.
javaを作成する - ② javac Fizzbuzz.
javaコンパイルする - ③ java FizzBuzzで実行する
リスト2 FizzBuzz.
public class FizzBuzz {
public static void main(String[] args) {
for (int i=1; i<=100; i++) {
if (i % 15 == 0) {
System.out.println("FizzBuzz");
} else if (i % 3 == 0) {
System.out.println("Fizz");
} else if (i % 5 == 0) {
System.out.println("Buzz");
} else {
System.out.println(i);
}
}
}
}
同じことをするのにも,public Class FizzBuzz
とpublic static void main(String[] args)
でくるまなければならないですし,FizzBuzz.
でなければならないですし,javac
でコンパイルしてjava
で実行しなければなりません。コードの部分はほとんど同じなのに,
「簡単なことは簡単に。難しいこともそれなりに」
MVCは分けましょう
しかし手練れのプログラマであれば,
そうするにはどうしたらよいでしょう。そう。関数ですね
リスト3 Swiftで
func fizzbuzz(n:Int) -> String {
if n % 15 == 0 { return "FizzBuzz" }
if n % 5 == 0 { return "Buzz" }
if n % 3 == 0 { return "Fizz" }
return String(n)
}
for n in 1...100 {
println(fizzbuzz(n))
}
Swiftもほかのプログラミング言語同様,func
。Perlのsub
やRubyのdef
より1文字多いですが,function
の半分。ただし型は宣言しなければなりません。引数は数値のInt
。戻り値は文字列のString
。そう。SwiftはCやC++やJava同様,