首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用私有方法“split”(Shoes::EditLine):Shoes::EditLine

调用私有方法“split”(Shoes::EditLine):Shoes::EditLine
EN

Stack Overflow用户
提问于 2009-08-28 01:46:10
回答 2查看 1K关注 0票数 1

我正在试着写一个简单的程序,它接受一个RGB值,并使用鞋子(葡萄干修订版1134)将背景更改为该颜色。下面是我的代码:

代码语言:javascript
复制
Shoes.app :title => "Show a Color" do

    def convert_to_num(value)
    # Splits string into numerical values
        value.split(',').map { |num| num.to_i }
    end 

    def to_rgb(value)
        red, green, blue = convert_to_num(value)
        rgb(red, green, blue)
    end  

    stack :height => 500, :width => 500 do
        value = edit_line
        button "Change color!" do
            background to_rgb(value)
        end
    end

end

当我运行它时,我得到这个错误:私有方法'split‘被调用(Shoes::EditLine):Shoes::EditLine。为什么会这样呢?该方法在irb中有效。

EN

回答 2

Stack Overflow用户

发布于 2009-08-28 15:12:51

您正在尝试拆分EditLine对象,而不是其文本。您可以使用text方法获取其文本,如下所示:

代码语言:javascript
复制
    def convert_to_num(value)
    # Splits string into numerical values
        value.text.split(',').map { |num| num.to_i }
    end
票数 2
EN

Stack Overflow用户

发布于 2009-08-28 07:30:03

我假设您希望value是一个字符串。传递给to_rgbvalue是一个Shoes::EditLine,而不是一个字符串。我从错误消息中了解到这一点,而不是通过阅读代码。您的convert_to_num方法很好,只是传递的对象类型不是您认为的类型。

我以前没有用鞋子编程,所以我不确定如何解决这个问题,但现在你至少知道是什么导致了它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1344624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档