challenge メソッド名一覧の表示

リフレクション系のお題の続編です。

「ある与えられたオブジェクトtargetのメソッドのうち、 "test_"で始まるものをすべて呼びだす」というコードを書いてください。 引数に関しては都合のいいように仮定して構いません(全部0個、など)。

メソッドという概念がない言語の場合は、 「複数の関数への参照を持っているようなオブジェクト(たとえばパッケージとかモジュールとか)から"test_"で始まる関数をすべて呼び出す」と読み替えても構いません。

Posted feedbacks - Io


	
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Object callMethods := method(str,
    self slotNames foreach(slotname,
        if(slotname beginsWithSeq(str),
            self perform(slotname)
        )
    )
)

obj := Object clone
obj test_1 := method(
    "test_1" println
)
obj foobar := method(
    "foobar" println
)
obj test_2 := method(
    "test_2" println
)
obj test3 := method(
    "test3" println
)
obj test_4 := "fuga"

obj callMethods("test_")

Index

Feed

Other

Link

Pathtraq

loading...