簡體   English   中英

Ruby 從變量 [value(string)] 調用方法

[英]Ruby calling method from a variable [value(string)]

Ruby 從變量 [value(string)] 調用方法

obj.get("GET A")

方法get打開一個文件夾並檢查'A'的值但是如果沒有文件夾我想創建它並再次調用相同的方法有很多這樣的功能,所以我創建了一個lambda

$s1_exists = lambda do |inp|
 File.open(%Q{session-1.txt}, "w")
 puts "Method called on empty Databse, try again"
end

但不是放置我希望它調用的信息:

obj.get("GET A")

當然我可以復制/粘貼每種方法的代碼,但這是不好的做法......我嘗試了這樣的事情(在 lambda 中):

1. obj_m = inp.downcase.split[0]
self.obj_m(inp)

2. obj_m = inp.downcase.split[0]
self.(:obj_m, inp)

3. obj_m = inp.downcase.split[0]
self.method(%Q{#{obj_m(inp)}})

我嘗試使用“GET”作為一種方法,我相信,我嘗試了更多但我現在不記得了。 如果你有任何想法,請讓我現在順便說一句。 我是 Ruby 的新手,因此不勝感激。

謝謝@maxplener 為我工作

    $s1_exists = lambda do |inp=0|
        File.open(%Q{session-1.txt}, "w")
        meth_call = inp.downcase.split[0]
        obj = Db.new
        obj.public_send(meth_call, inp)
    end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM