ごきげんよう、erukitiです。僕が大好きなGolang, ES2015(Node.js)及び、心の故郷Rubyの比較形式のチートシートを作成中です。Ruby, Golang, JavaScriptを好きな人、これらを複数使って混乱している人は是非ご活用ください。一気に作成するのはしんどいので、このURLにてチビチビ作っていきます。ストックした人には更新が飛ぶようにします。
文字列
配列
内容 | Ruby2.2.0 | Golang | Node(ES2015) |
---|---|---|---|
配列の結合 | self += other | slice = append(slice, other...) | Array.prototype.concat() |
内容のクリア | Array#clear | ||
要素で埋める | Array#fill | Array.prototype.fill() | |
フィルタ | Array#keep_if | Array.prototype.filter() | |
各要素を処理(each) | Array#each | Array.prototype.forEach(), Array.prototype.map() | |
指定要素を含む? | Array#include? | Array.prototype.includes() | |
指定要素の最初の位置 | Array#find_index | Array.prototype.findIndex() | |
指定要素の最後の位置 | Array.prototype.lastIndexOf() | ||
先頭に要素追加(unshift) | Array#unshift | Array.prototype.unshift() | |
末尾に要素追加(push) | Array#push, self += other | slice = append(slice, elem) | Array.prototype.push() |
末尾から要素削除(pop) | Array#pop | Array.prototype.pop() | |
たたみ込み(reduce) | Enumerable#inject | Array.prototype.reduce(), Array.prototype.reduceRight() | |
リバース | Array#reverse | Array.prototype.reverse() | |
先頭から要素削除(shift) | Array#shift | Array.prototype.shift() | |
ソート | Array#sort | Array.prototype.sort() |
プロセス
内容 | Ruby2.2.0 | Golang | Node(ES2015) |
---|---|---|---|
CLI引数(引数のみ) | Object::ARGV | os.Args[1:] | process.argv[2..] |
CLI引数(自分自身の名前) | __FILE__ | os.Args[0] | process.argv[1] |
環境変数 | ENV | os.Getenv() | process.env |
カレントディレクトリ取得 | Dir.getwd | os.Getwd() | process.cwd() |
ホームディレクトリ取得 | Dir.home | os.homedir() | |
ホスト名取得 | Socket.gethostname | os.Hostname() | os.hostname() |
PID取得 | Process.#pid | os.Getpid() | process.pid |
OS名取得 | runtime.GOOS | process.platform | |
アーキテクチャ名取得 | runtime.GOARCH | process.arch | |
言語バージョン取得 | Object::RUBY_VERSION | runtime.Version() | process.version |
終了 | kernel.#exit | os.Exit() | process.exit() |
異常終了(コア) | panic() | process.abort() |
子プロセス
内容 | Ruby2.2.0 | Golang | Node(ES2015) |
---|---|---|---|
子プロセス実行&結果取得 | `hoge` | exec.Command().Output() | child_process.exec() |
ファイルシステム
内容 | Ruby2.2.0 | Golang | Node(ES2015) |
---|---|---|---|
一括ファイル読み出し | IO.read() | ioutil.ReadFile() | fs.readFile(), fs.readFileSync() |
一括ファイル書き出し | IO.write() | ioutil.WriteFile() | fs.writeFile(), fs.writeFileSync() |
ファイル存在確認 | FileTest.#exist? | os.Stat() & os.IsExist() | fs.stat(), fs.statSync() |
ディレクトリ作成 | Dir.mkdir | os.Mkdir() | fs.mkdir(), fs.mkdirSync() |
ディレクトリ作成(mkdir -p) | FileUtils.#makedirs | os.MkdirAll() | |
ファイル削除 | File.delete | os.Remove() | fs.unlink(), fs.unlinkSync() |
JSON
内容 | Ruby2.2.0 | Golang | Node(ES2015) |
---|---|---|---|
JSON生成 | JSON.#generate | json.Marshal() | JSON.Stringify() |
JSON復号 | JSON.#parse | json.Unmarshal() | JSON.parse() |
オブジェクト操作
内容 | Ruby2.2.0 | Golang | Node(ES2015) |
---|---|---|---|
コピー(clone作成) | Object#clone | *1 | |
メソッド一覧取得 | Object#methods | *1 | *1 |
メンバー一覧取得 | Object#instance_variables | fmt.Printf("%+v\n", obj) | *1 |
ライブラリ
内容 | Ruby2.2.0 | Golang | Node(ES2015) |
---|---|---|---|
ロガー | logger | log | |
CLIオプション解析 | optparse, getoptlong | flag |