Swift単語

スウィフト

Swiftスウィフト)とは、以下のいずれかをす。

  1. 英語の名詞でアマツバメのこと
  2. 英語の固有人名(Jonathan Swiftなど)
  3. 英語の形容詞で 速な…… 即座の…… を意味する
  4. Appleが開発したプログラミング言語
  5. シカゴ大学アルゴン国立研究所により2007年に発表された並列スクリプト言語
  6. SWIFTコード銀行及び支店に割り振られる識別番号(SWIFTは銀行間通信協会の略)。日本では支店までだが、チャイナだとそれぞれの口座にまで割り振られている。このコード削除されると、送が行えなくなる。ちなみに北朝鮮銀行2017年3月にすべてのSWIFTコード削除されている。[1]

当記事では4のプログラミング言語について解説する。

概要

Appleが次世代のアプリケーション開発用言として設計した。Objective-Cの後継をしており、最新トレンドの採用といかにもApple的な独自路線の融合が特徴。2014年6月2日に行われたWorldwide Developers Conference 2014で発表された。

Appleは Swift = Objective-C - C としており、ベース文法がC言語系列から離れたものとなっている。感覚的にはRustGoogle GOといった2000年台後半設計言の系統に属する。

なフィーチャーは以下のとおり

Swiftで開発されたアプリケーションを動作させるにはiOS 7以降、またはOS X 10.9以降が必要となる。

2016年9月13日バージョン3.0がリリースされた。C言語時代から継続するforループの書式が止されるなど互換性を損なう変更も行われた。

Hello World

println(“Hello World”)

コンパイルで伝統的なメイン関数はなく、トップレベルで書き下すとスクリプト言語のようにそのまま実行される。複数のモジュールプログラムを書く場合は、main.swiftに書かれたものがエントリーとなる。

特徴的な機能

クラス

基本的にはD言語辺りに近い静的OOPクラスとして動作する。virtualなし、final, overrideありのイマドキ設計。ただし、

等の条件を満たす場合はobjc互換となり、メッセージパッシングで動くようになる。objcとのメソッドブリッジ等はややこしいので省略。基本的にコンパチクラスは相互呼び出しが可である。

関数、メソッド

Swiftの非常に特徴的な要素の一つが関数引数周りの設計である。C言語的な引数の値のみを渡す文法と、Objective-C的なメッセージ引数的な文法が混在し、状況によってデフォルトの扱いが違うという癖のある作りになっている。

基本ルール

(A) C言語スタイル

 func f(v1: Int, v2: Int) -> Int 
{
  return f1 + f2
}
// -> 外部パラメータ名なしで呼び出す f(1,2)

(B) Objective-Cスタイル

 func f(left v1: Int, right v2: Int) -> Int 
{
  return v1 + v2
}
// -> 外部パラメータ名付きで呼び出す f(left: 1, right: 2)

(B’) Bの略記形

 func f(#left: Int, #right: Int) -> Int
{
  return left + right
}

※混在も可

 func f(v1: Int, #plus: Int) -> Int
{
  return v1 + plus
}
// f(1, plus: 2)

ややこしいのはデフォルトの扱い。

なんでこんな事になるかというと、オブジェクトに属するメソッドメソッド名自体が先頭引数の意味を説明することが多いのでわざわざ書かないようにしたい、しかしイニシャライザは名前がinit(呼び出す方はClass()のようにコンストラクタ呼び出し)で統一されているので先頭も必要・・・という理由による。ちなみにイニシャライザは外部パラメータ名によってオーバーロードされるので、同じシグネチャに対して複数の異なるイニシャライザを定義することも可である。

なお場合によっては外部パラメータ名を付けたい場合と付けたくない場合があると思うが、そういう時は、(B)の記法を使って強制的に外部パラメータ名を付けたり、外部パラメータ名をアンダースコアにすることで省略扱いすることもできる。まさにApple

その他

細かいことはApple様がiBooksで配布しているマニュアルを読もう。

また、iBooksだけではなくwebでもドキュメント開されている。

オープンソース

Apache 2.0ライセンスソースコードubuntuコンパイラなどが開されている。swift.orgexit

外部リンク

関連項目

脚注

  1. *「決裂する世界で始まる融制裁戦争渡邉哲也 徳間書店 2017 pp.124-125

【スポンサーリンク】

スマホ版URL:
https://dic.nicovideo.jp/t/a/swift

この記事の掲示板に最近描かれたお絵カキコ

お絵カキコがありません

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

Swift

8 ななしのよっしん
2015/12/16(水) 23:15:53 ID: 3psWDu+DND
>>6
WebKitェ・・・
Appleオープン化した方が結果的に得だと見たら割とにやると思うよ。
Swiftはlibdispatchが標準で付いてくるのが意外と美味しい気がする。
9 ななしのよっしん
2015/12/23(水) 18:56:03 ID: ySZNTZOWPM
言わせてもらうが、メディア報道とは裏アップル
アメリカトップ企業で髄一のオープンソース/標準規格への貢献度を誇る
Webライブラリの標準だったWebkit、今やmp4の中核に昇したQuickTime
先日策定されたUSB-TypeCも、アップルが開発したものとリークされてる

反面オープン"っぽさ"が評判のグーグルは、規格のコミュニティに寄生しては脱退して
敵対勢を作っては標準規格に圧をつけるといった行動を繰り返してる
アップルが口に出さないことをダシに、言いたい放題なネットの自称情強の見解なんて
何のあてにもならない
10 ななしのよっしん
2015/12/24(木) 20:32:07 ID: Izu6zTXEOx
Yahoo! JAPANObjective-CSwiftコンバータ
http://news.mynavi.jp/news/2015/12/24/103/exit
11 ななしのよっしん
2016/04/10(日) 13:26:33 ID: 0uIFNk+KD5
てか、Google御大swiftandroid用言にしたいと言い出してるし、、
12 ななしのよっしん
2016/04/10(日) 14:22:03 ID: 0uIFNk+KD5
↑のソースね。
http://www.itmedia.co.jp/news/articles/1604/09/news026.htmlexit
13 ななしのよっしん
2016/06/02(木) 07:35:57 ID: x3y9wJv/RC
自分もOS Xアプリの勉強してるけど、
>>az4501552700exit_nicoichiba

Objective-CSwift翻訳して使ってる。
現状だとまたOS Xに関して言えば、Objective-Cも書ける必要はないけど読めた方がいいって感じがする。
あと内容が若干古い。Xcode仕様とか。
英語版には第5版もあるみたいだけど。。。
14 ななしのよっしん
2016/06/15(水) 19:04:20 ID: 0uIFNk+KD5
Swift playgrounds
http://www.apple.com/jp/pr/library/2016/06/13Swift-Playgrounds-App-Makes-Learning-to-Code-Easy-Fun.htmlexit

子供向けのswiftプログラミング学習アプリ開発中だそうな。
15 ななしのよっしん
2016/08/18(木) 05:01:49 ID: ySZNTZOWPM
>>11
>>9言った通りになりそうですねえ・・・
16 ななしのよっしん
2017/04/22(土) 07:49:32 ID: NL4b/toLWa
>>14Swift Playgrounds日本語化対応
https://www.apple.com/jp/swift/playgrounds/exit
17 ななしのよっしん
2017/12/22(金) 22:32:33 ID: cNbnZyGcF3
>>9
申し訳ないが対立煽りNG