6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SwiftAdvent Calendar 2014

Day 21

ローカルルールをSwiftで

Last updated at Posted at 2014-12-21

地方の中小システム開発会社で勤務している、MeguMegu1978といいます。こんにちは。

さて、システム開発の現場で各種メッセージサービスを使うことも珍しくなくなりましたが、そんなメッセージサービス上でのやりとりの中で、"はい"の代わりに"ほい"とその亜種を使っているうちに「役職の数に応じて、"ほ"の数が決まる」という謎の仕様が策定されて、社内のエンジニアが役職に応じた"ほい"は何なのか、がわかるJavascriptを作ってくれました。

仕様

担当:ほい
主任:ほほい
係長:ほほほい
課長:ほほほほい
部長:ほほほほほい

…なんのこっちゃ。

最初はSwiftのFizzBuzzでも…と思っていたんですが、"swift fizzbuzz"で検索すると既に先駆者がたくさんヒットして新鮮味がないので、この地方の小さな会社で策定された仕様とJavascriptのコードをSwiftに移植する事にしました。

CUIなSwiftアプリを動かす環境構築手順なんかは割愛しています。


import Cocoa

enum Result {
    case Success(String)
    case Error(String)
}

func getHoiFromNumber(arg: Int?) -> Result {
    
    if (arg != nil ){
        var output = "";
        
        for (var i = 0; i <= arg; i++) {
            output += "ほ";
        }
        output += "い";
        
        return Result.Success(output)
    } else {
        return Result.Error("Error!.")
    }
}

var arg: AnyObject! = NSFileHandle.fileHandleWithStandardInput()
while true {
    if let data = arg.availableData {
        let str: NSString? = NSString(data: data, encoding: NSUTF8StringEncoding)
        var i: Int? = str.toInt()
        print(getHoiFromNumber(i))
    }
}
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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?