Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Matzにっき(2003-08-26)
[go: Go Back, main page]

«前の日記(2003-08-25) 最新 次の日記(2003-08-27)» 編集

Matzにっき

<< 2003/08/ 1 1. 1.8.0 preview7
2 1. Ruby 1.8.0
2. 花火
3. オブジェクト指向が難しいのか(予告)
3 1. 松江
2. 米子
3. ひらがなのなまえ
4 1. 来訪者
2. Ruby 1.8.0
5 1. 見積もり
2. 記者の眼
3. 1.8.0のバグ
6 1. 継承は悪か
7 1. 出張
2. オブジェクト指向の神髄
8 1. まつもとゆきひろを囲む会
2. アイデンティティ
3. 番号
9 1. Lightweight Language Saturday
2. また欠航
10 1. 帰宅
11 1. バグ
2. LL Saturday感想
12 1. 帰省
2. トリック×トリック
13 1. 秋芳洞
2. 今日のバグ
14 1. 買い物
2. Linux Magazine
15 1. でえと
2. 温泉
3. 原稿
4. irb
16 1. 帰宅
17 1. 出雲訪問
18 1. 技術の真髄
19 1. 送別会
20 1. 「技術の真髄」完了
21 1. Linux体験講座
2. 対話
22 1. 訪問者
2. 記憶のふしぎ
23 1. 休日
24 1. 松江
25 1. Mix-inと多重継承
2. アイデンティティ再び
26 1. 多重代入
27 1. 続々アイデンティティ
28 1. チケット
2. アイデンティティFAQ
29 1. local jumpの改善
30 1. 流しそうめん
31 1. 松江
2. 箱モデル
>>
Dr.Web 予測するアンチウイルス  Hiki も使った新サイト、10/18 リニューアルオープン!

2003-08-26 [長年日記]

_ [Ruby]多重代入

scanfの辺りで悩んだことからきているのだが、また多重代入の挙動で悩んでいる。

いろいろな条件が重なっているので、全体として見るととても複雑で、 自分でも「なんでこうなっているんだろう」と悩むような部分があり、 何ヶ月かおきに「挙動を変えよう」と思ったりする。

しかも、こんなすみっこの挙動に関心を持つ人がいないので、誰にも相談するわけにもいかず (akrさんなら気が向けば考えてくれるかも)、結局自分一人で考えるしかない。

今回問題にしているのは

"a".scan(/(.)/){|*a| p a}

の出力が[["a"]]なのに、

"ab".scan(/(.)(.)/){|*a| p a}

の出力が["a", "b"]である点だ。

いっそ多値でも導入しようかという気にもなるのをぐっと押さえて、いろいろ考える。 結論としては

  • 1要素以下の配列を特別扱いしているのが違和感のもと
  • いっそ配列は全部同じ扱いにしては

というもの、これで後者の出力は[["a", "b"]]になる。 多重代入では

a,b = 1,2
a,b = [1,2]

は同じように動作するので、この変更による影響はあまり大きくないと思う。 いや、本当に大きくないかはやってみないと分からないな。 実際に修正して、試してみよう。「ぎゃっ」と言う人が多ければ考え直すことにして。

お名前:
E-mail:
コメント:
本日のリンク元
アンテナ
検索

RSS feed meter for http://www.rubyist.net/~matz/ Creative Commons License This work is licensed under a Creative Commons License.