gist

2012年5月29日火曜日

[Node.js] sprintfが意外と使える件



sprintfは、その名の通り書式を指定して文字列を生成するパッケージです。

sprintfは、JavaScriptのsprintfライブラリと同じ動作をします。オブジェクトや配列を出力できます。

$ npm install sprintf

CoffeeScript

sprintf = require('sprintf').sprintf
vsprintf = require('sprintf').vsprintf

# %2$s で2番目の文字を出力します。
console.log sprintf '%2$sは%3$sが%1$sです!', '大好き', 'ニャル子', '真尋さん'

# vsprintfでは配列を出力します
console.log vsprintf '登場人物: %s, %s, %s, %s', ['真尋', 'ニャル子', 'フー子', 'ハス太']

# オブジェクトを出力します。%(プロパティ名)s で指定します。
user = {name:'ニャルラトホテプ', nickname:'ニャル子'}
console.log sprintf '%(name)sのニックネームは、%(nickname)sです', user 

# オブジェクトの配列も出力可能
users = [
    {name: '真尋'}
    {name: 'ニャル子'}
    {name: 'フー子'}
]
console.log sprintf '%(users[0].name)s, %(users[1].name)s %(users[2].name)s', {users: users}

結果

$ coffee sample.coffee 
ニャル子は真尋さんが大好きです!
登場人物: 真尋, ニャル子, フー子, ハス太
ニャルラトホテプのニックネームは、ニャル子です
真尋, ニャル子 フー子

地味ですが強力なパッケージです。もちろん%d, %f, %xなども使えます。

0 件のコメント: