加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby setter成语

发布时间:2020-12-17 01:48:22 所属栏目:百科 来源:网络整理
导读:我正在使用Chart类,它有一个margin参数,它包含:top,:bottom,:right和:left values.我的第一个选择是将margin设置为setter并设置如下值: # Sets :left and :right margins and doesn't alter :top and :bottom chart.margins = {:left = 10,:right = 15}
我正在使用Chart类,它有一个margin参数,它包含:top,:bottom,:right和:left values.我的第一个选择是将margin设置为setter并设置如下值:

# Sets :left and :right margins and doesn't alter :top and :bottom 
chart.margins = {:left => 10,:right => 15}

这很好,因为它显然是一个设定者,但是,经过一番思考,我认为它也可能令人困惑:用户可能认为边距仅包含:左和右值,什么是不对.另一种选择是消除=并使其成为普通方法:

chart.margins(:left => 10,:right => 15)

使用这种语法,很容易弄清楚发生了什么,但它不是标准的setter并且与margins getter冲突.而且还有另一种选择:

chart.margins(:left,10)
chart.margins(:right,15)

我不知道该怎么想.对我来说,很明显这个方法是一个setter,但这次我不能只用一次调用设置多个值,而getter又有问题.我对Ruby比较陌生,我还没有习惯所有的习语.所以,你觉得男人们怎么样?哪个是最好的选择?

解决方法

您还可以创建Margin类以享受以下清晰语法:

class Margin
    attr_accessor :left,:right,:top,:bottom
    ...
end

class Chart
    attr_accessor :margins
    ...
 end


chart.margins.left = 10
puts chart.margins.right

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读