人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Rubyのコードについて質問です。

re, level = *h_table.detect{ |re, *| re =~ str }

というコードの、h_tableの前についている*の意味が分かりません。どういう意味でしょうか?

●質問者: tyn
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:level Ruby STR コード
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● るびきち
●100ポイント ベストアンサー

配列展開です。

# -*- coding: utf-8 -*-
# 配列を展開する
a, b, c = *[1,2], 3
[a, b, c] # => [1, 2, 3]
a, b, c = 4, *[5, 6]
[a, b, c] # => [4, 5, 6]
# ない場合は
a, b, c = [1,2], 3
[a, b, c] # => [[1, 2], 3, nil]
a, b, c = 4, [5, 6]
[a, b, c] # => [4, [5, 6], nil]

################
h_table = { /y/ => 1, /f/ => 2 }
str = "Ruby"
re, level = *h_table.detect{ |re, *| re =~ str } # => [/y/, 1] # !> shadowing outer local variable - re
re # => /y/
level # => 1
# この場合はなくてもよい
re, level = h_table.detect{ |re, *| re =~ str } # => [/y/, 1] # !> shadowing outer local variable - re
re # => /y/
level # => 1
◎質問者からの返答

rubikitchさん、回答有難うございました。配列展開について初めて知りました。


2 ● ミケ
●35ポイント

見出し †

* インライン要素行頭で * を記述すると、見出しになります。見出しは *、**、*** の3段階あります。

見出しは、他のブロック要素の子要素になることはできません。見出しが現われると他のブロック要素は終了します。

見出しは、他のブロック要素を子要素にすることはできません。

http://pukiwiki.sourceforge.jp/?%E6%95%B4%E5%BD%A2%E3%83%AB%E3%8...


http://jp.rubyist.net/magazine/?0010-CodeReview

とのことですが、なんだか難しいですよね?^^;

◎質問者からの返答

sumikeさん、回答有難うございます。もう一度見直してみようと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ