LoginSignup
6
5

More than 5 years have passed since last update.

Swiftをコマンドラインで使ってみる

Last updated at Posted at 2015-04-21

Xcodeは入れたものの、どうやったらswiftが使えるようになるのかわからない。
XCode 6をインストールしたら、いきなりコマンドラインからswiftが使えるみたい。
では、コマンドラインでまずは実行してみよう。のメモ

wikipediaより
Swift(スウィフト)は、アップルのiOSおよびOS Xのためのプログラミング言語。

SwiftをXcodeで使ってみる
を投稿しました(2015-5-14)

コマンドラインでswiftを使う

Swiftをコマンドライン(CLI)で実行する
を参考にさせてもらいました。

上記参考URLではXcodeをBata版をインストールした場合の動作です。
もし、Bata版を入れた場合、PATHを設定しないと使用できないようです。
AppStoreからXcode入れた場合は意図的にPATH設定をしなくても使えるようです。

[ $ swift -h ]でパスが通っているのか確認

swiftのパスが通っていればhelp情報が表示されます。
スクリーンショット 2015-04-21 17.56.33.png

swift言語のファイルをつくる

[Hello Word]と表示させるファイルを作ります。
拡張子はなんでも大丈夫です。
でも、約束として拡張子を .swift にするようです。
無理に.swiftにしなくても動きました。。

hello.swift
var str = "Hello Swift World!!"
println(str)

これを実行すると無事に文言がでてきました。

$ swift hello.swift 
Hello Swift World!!
$

<番外編>

swiftをコマンドラインから使うための準備
SwiftコマンドにPATHを通す

毎回パスを通すのが面倒であれば、bashの設定をしてしまうのがいいかもしれません。
ホームに.bash_profileがなければ新しく作って自分環境を充実させるのもよいかと。。
私は、毎回パスを通すことにします。

$ export PATH=$PATH:`find /Applications/Xcode-beta.app -name swift|grep bin|xargs -I{} dirname {}`

[ $ swift -h ]でパスが通ったのかを確認
スクリーンショット 2015-04-21 16.11.26.png

もしも、以下の様なエラーがでてきて、ダイアログが立ち上がってきたらBata版のせいかもしれません。

$ swift -h
xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools.

スクリーンショット 2015-04-16 18.01.35.png

<念の為調査>
swiftが入っているのかを確認。

$ find /Applications/Xcode-beta.app -name swift | grep bin
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift

swiftはインストールされているみたい。
直叩きで、結果が返ってきたので、パスがおかしいだけのようです。

$ /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -h
OVERVIEW: Swift compiler
:

env で確認してみると、ちゃんといる。。。

PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

PATHではなく、違う名前で環境変数の設定をして実行してみました。
そしたら無事に実行できました。

$ export SWIFT=/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/
$ $SWIFT/swift -h
OVERVIEW: Swift compiler

Swiftのバージョン確認しようとしたらREPLで開いてしまった!! メモ(追記:20151217)

<原因>
ただバージョンを確認したかったので、ヘルプを良く見ずに[-v]オプションをつけてコマンドラインで実行してしまった。
すると。。。

$swift -v
Apple Swift version 2.1 (swiftlang-700.1.101.6 clang-700.1.76)
Target: x86_64-apple-darwin15.0.0
/Applications/Xcode.app/Contents/Developer/usr/bin/lldb "--repl=-target x86_64-apple-darwin15.0.0 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -color-diagnostics"
Welcome to Apple Swift version 2.1 (700.1.101.6 700.1.76). Type :help for assistance.
  1> 

入力待機状態に陥ってしまった。
これはREPL(Read eval print loop)モードというらしい。
対話型でswiftソースを直接書いて実行できることがわかった。

Welcome to Apple Swift version 2.1 (700.1.101.6 700.1.76). Type :help for assistance.
 1>  var str = "Hello Swift World!!" 
str: String = "Hello Swift World!!"
  2>  

最初、この抜け方が全くわからなくて非常に焦った

抜けれない・・・
 2> ^C
 2> bye
repl.swift:2:1: error: use of unresolved identifier 'bye'
bye
2> exit
repl.swift:2:1: error: use of unresolved identifier 'exit'
exit
2> return
repl.swift:2:1: error: return invalid outside of a func
return
 5> \q 
/var/folders/ts/8v366z5x49s75x6pv6_c43hc0000gq/T/./lldb/2710/repl9.swift:2:1: error: invalid character in source file
\q

思いつく抜け方で試して抜けれなくて調べた結果、REPLモードは[:quit]で抜けれることがわかりました。。

参考URL:
REPLモードとシェルモードでギーク開発
SwiftのREPLモード(インタプリタ)
[Swift] コマンドライン(Command Line)プログラムとして使う

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5