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


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

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

回答の条件
  • 1人3回まで
  • 登録:2009/11/30 04:33:32
  • 終了:2009/12/06 04:09:57

ベストアンサー

id:rubikitch No.1

るびきち回答回数120ベストアンサー獲得回数222009/11/30 05:53:43

ポイント100pt

配列展開です。

# -*- 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
id:tyn

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

2009/12/05 22:00:11

その他の回答(1件)

id:rubikitch No.1

るびきち回答回数120ベストアンサー獲得回数222009/11/30 05:53:43ここでベストアンサー

ポイント100pt

配列展開です。

# -*- 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
id:tyn

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

2009/12/05 22:00:11
id:sumike No.2

ミケ回答回数379ベストアンサー獲得回数252009/12/05 15:15:47

ポイント35pt

見出し †

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

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

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

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


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

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

id:tyn

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

2009/12/05 21:59:18
  • id:rubikitch
    sumikeさんの回答は的外れです。
    質問はRubyのコードについてですが、あなたのはPukiWikiの記法についてです。
  • id:sumike
    rubikich様
    間違った書き込みで、お時間をとらせてしまって
    申し訳ありませんでしたm(__)m

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません