2014-06-03
プログラミング言語の魅力は、それが動く環境とセットです。かつて、手元のコンピューターを操る唯一のプログラミング言語が、BASICでした。

本日未明、Appleから発表されたSwiftは、iPhone/iPod touch/iPad/Macで動くアプリを今まで以上に高速に、かんたんに作れる新しいプログラミング言語です。現在、使われているのは、Objective-Cという1983年生まれの言語で使ったアプリ開発でした。1995年生まれのJava言語やJavaScript言語と比べると、どうしてもいろいろと不便な面が多い言語でした。

Swiftは、これまでの多くのプログラミング言語の経験を踏まえた、2014年生まれ。C++とJavaとJavaScriptを足してきれいにした言語仕様と、強力そうな開発環境が魅力的です。IchigoJamのBASIC言語で学んだこども達が、次のステップに進むのにきっとぴったりです。ひさびさにわくわくする言語の登場。実際、使ってみるのが楽しみです。


「Swift - Apple Developer」

下記、「Welcome to Swift」からリファレンスなどを読んだ、プログラマーの人向けのメモです。

文末セミコロンはなくてもいい
nil / true / false
0b 2進数が使える!
1e-2 指数表示が使える!
let answer = 3; println("answer: \(answer)"); 文字列内に変数が楽
改行付き文字列を簡単に書く方法なく残念
計算でオーバーフローするとエラー
&* &/ &% &+ &- オーバーフローしてもエラーにならない演算子
john.residence?.address?.buildingIdentifier() nilチェック不要で楽
try/catchがない?
=== 完全一致、JavaScript風
~= パターンマッチ
まとめて代入 (a, _, (b, c)) = ("test", 9.45, (12, 3))
キャスト let x = "123" as Int
1..3 1から3までの配列生成
連想配列も [] を使う var numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
デバッグ用キーワード __FILE__ __LINE__ __COLUMN__ __FUNCTION__­
最小関数 myFunction { $0 + $1 }
for initialization; condition; increment { forにカッコがいらない!
for item in collection {
while condition {
if condition { ifもカッコ不要!
switch control expression { switchはいろいろ拡張されている
break / break label, continue / continue label
fallthrough?
import module
let constant name: type = expression 定数
var variable name: type = expression 変数
typealias name = existing type
func function name(parameters) -> return type {
enum enumeration name {
protocol protocol name: inherited protocols { Javaのinterface的なもの
struct structure name: adopted protocols {
class class name: superclass, adopted protocols {
init / deinit 初期化、破棄
extension type: adopted protocols { 型を拡張できる 3.km -> 3000と返すとか
subscript (parameters) -> return type { 配列風アクセスを定義できる
operator infix operator name { C++風、演算子オーバーライドもあり
func simpleMin(x: T, y: T) -> T { C++風テンプレート

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS