teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

タイプミス

2018/06/04 06:38

投稿

otn
otn

スコア86349

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  これはだめです。
2
- `tbl_cmd`への代入の時点での'$1`の値(多分空文字列)が展開されて`tbl_cmd[:cmd]`にセットされます。
2
+ `tbl_cmd`への代入の時点での`$1`の値(多分空文字列)が展開されて`tbl_cmd[:cmd]`にセットされます。
3
3
 
4
4
  どうしたら良いかはちょっと考えてみます。
5
5
  #追記

1

追記

2018/06/04 06:38

投稿

otn
otn

スコア86349

answer CHANGED
@@ -1,4 +1,20 @@
1
1
  これはだめです。
2
2
  `tbl_cmd`への代入の時点での'$1`の値(多分空文字列)が展開されて`tbl_cmd[:cmd]`にセットされます。
3
3
 
4
- どうしたら良いかはちょっと考えてみます。
4
+ どうしたら良いかはちょっと考えてみます。
5
+ #追記
6
+ 元の物に近くするには、`eval`を使うしか無さそうです。
7
+ ```Ruby
8
+ tbl_cmd = [
9
+ { regexp: '^ *v +(\d+) *$',
10
+ cmd: '":direct #{$1}"'},
11
+ ]
12
+ cmd = STDIN.gets # v 5 と入力
13
+ tbl_cmd.each do |c|
14
+ if /#{c[:regexp]}/ =~ cmd
15
+ puts "match"
16
+ p $1
17
+ p eval(c[:cmd])
18
+ end
19
+ end
20
+ ```