Ruby、Golang和ES2015的比较备忘单

大家好,我是erukiti。我正在制作我最喜欢的Golang、ES2015(Node.js)和我心灵的故乡Ruby的比较形式的备忘录。喜欢Ruby、Golang和JavaScript的人,以及同时使用它们而感到混乱的人,请务必使用此备忘录。由于一次性完成很辛苦,我将在此URL逐步制作。我会将更新发送给收藏了这个备忘录的人。

文本串

内容Ruby2.2.0GolangNode(ES2015)文字列長取得String#lengthlen(str)String.prototype.length大小比較String#<=>strings.Compare()
先頭比較String#start_with?strings.HasPrefixString.prototype.startsWith()末尾比較String#end_with?strings.HasSuffixString.prototype.endsWith()任意文字での分割String#splitstrings.Split(), regexp.Split()String.prototype.split()空白文字での分割
strings.Fields
文字列配列の結合Array#joinstrings.Join()Array.prototype.join()部分文字列str[start..end]str[start:end]String.prototype.substr()繰り返しString#*strings.Repeat()String.prototype.repeat()置換String#tr, String#tr!, String#gsubstrings.Replace(), regexp.ReplaceAllString()String.prototype.replace()包含判定String#include?strings.Contains()
前後の空白除去String#stripstrings.TrimSpace()String.prototype.trim()前後の任意文字除去
strings.Trim()
末尾改行削除String#chomp, String#chomp!

埋め込み文字列“#{hoge}”
`${hoge}`フォーマットKernle.#sprintf, String % argsfmt.Sprintf()
フォーマット出力Kernle.#printffmt.Printf()
標準出力Kernel.#printfmt.Print()process.stdout.write()標準出力(改行)Kernel.#putsfmt.Println()console.log(), process.stdout.write()変数ダンプKernel.#pfmt.Printf(“%v\n”, obj)console.dir()バイト列への変換不要[]byte(string)new Buffer()バイト列からの変換不要string(bytes)buf.toString()

顺序排列

内容Ruby2.2.0GolangNode(ES2015)配列の結合self += otherslice = 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 += otherslice = 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.0GolangNode(ES2015)CLI引数(引数のみ)Object::ARGVos.Args[1:]process.argv[2..]CLI引数(自分自身の名前)__FILE__os.Args[0]process.argv[1]環境変数ENVos.Getenv()process.envカレントディレクトリ取得Dir.getwdos.Getwd()process.cwd()ホームディレクトリ取得Dir.home
os.homedir()ホスト名取得Socket.gethostnameos.Hostname()os.hostname()PID取得Process.#pidos.Getpid()process.pidOS名取得
runtime.GOOSprocess.platformアーキテクチャ名取得
runtime.GOARCHprocess.arch言語バージョン取得Object::RUBY_VERSIONruntime.Version()process.version終了kernel.#exitos.Exit()process.exit()異常終了(コア)
panic()process.abort()

子进程

内容Ruby2.2.0GolangNode(ES2015)子プロセス実行&結果取得`hoge`exec.Command().Output()child_process.exec()

文件系统

内容Ruby2.2.0GolangNode(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.mkdiros.Mkdir()fs.mkdir(), fs.mkdirSync()ディレクトリ作成(mkdir -p)FileUtils.#makedirsos.MkdirAll()
ファイル削除File.deleteos.Remove()fs.unlink(), fs.unlinkSync()

JSON 是一种轻量级的数据交换格式。

对象操作

内容Ruby2.2.0GolangNode(ES2015)コピー(clone作成)Object#clone
*1メソッド一覧取得Object#methods*1*1メンバー一覧取得Object#instance_variablesfmt.Printf(“%+v\n”, obj)*1

图书馆

内容Ruby2.2.0GolangNode(ES2015)ロガーloggerlog
CLIオプション解析optparse, getoptlongflag
bannerAds