ついにAtCoderにもSwiftが導入される…かな?
http://language-test-201603.contest.atcoder.jp/
実力やいかに。
以下、環境構築や競プロで出番があるかもしれないものをつらつらと。
AtCoderのSwift
言語: Swift (2.2-SNAPSHOT-2016-02-08-a)
コンパイルオプション: swiftc -o a.out Main.swift
実行コマンド: a.out
環境構築
簡単
swiftenv install 2.2-SNAPSHOT-2016-02-08-a
適当なディレクトリで swiftenv local 2.2-SNAPSHOT-2016-02-08-a としておくのも良い。
レッツトライ
入力処理
paizaでの競プロSwiftと同様、 NSFileHandle からの取得はできない模様。以下だけでCEが出る。
let standardInput = NSFileHandle.fileHandleWithStandardInput()
readLine() による1行取得は使える。もちろん戻り値は Optional<String> である。
let a = readLine()!
Stringのsplit
残念ながらSwift2ではStringが CollectionType でなくなってしまったため、 split を行うことができない。方法としては、 String に CollectionType を与えて split する能力を蘇らせるか、 String.CharacterView を経由するか。
extension String: CollectionType {}
"1 2".split(" ")
"1 2".characters.split(" ")
クロージャなどを取る split もいて、 split を使い分けることにより自由に処理ができる。一応。
3.14
M_PI は Foundation 持ちなので使えない。
平方根
sqrt は Foundation 持ちなので使えない。
自作関数を突っ込む以外に方法があったら教えてください。。
ソート
またソートの名前が変わっていた……。
副作用を求めていく場合:
rs.sortInPlace(<)
副作用は許さない場合:
rs.sort(<)
まとめ
さすがにネタ言語よりは上だが他の実用言語に劣る(知ってた)