ついに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(<)
まとめ
さすがにネタ言語よりは上だが他の実用言語に劣る(知ってた)