LoginSignup
1
0

More than 3 years have passed since last update.

みんな大好き @mattn_jp さんのホクイモRuby ver.の解説

Posted at

概要

@mattn さんのホクイモ、Rubyでわからないところがあったので調べました。

説明

コード再掲

puts '%1$s%1$sの%2$s'%((%w[ホイクモ]*2).map{|x|x.chars.sample(2).join})

'%1$s%1$sの%2$s'%の最後の%はString#%で、Stringクラスのメソッドで、フォーマットに対して呼び出すと引数を適用した文字列を返してくれるそうです。

フォーマットの詳細はKernel::sprintfを見ろというので、見に行きます。

見てみると、%s$を使っているとわかります。
下記の事例などがわかりやすいですね。

sprintf("%1$*2$s %2$d %1$s", "hello", 8)   #=> "   hello 8 hello"

感想

元記事のコメント欄で、C++の人から強い言葉でコメントがついていて、(以下略)。

1
0
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
1
0