所以我有一个名为borrowed_book_bitmask
的字符串,我想在左侧和右侧填充另一个字符串。填充在某些类中定义为常量。所以我有
borrowed_book_bitmask = Module1::Model1::BITMASK_PADDING + borrowed_book_bitmask + Module1::Model1::BITMASK_PADDING
这种语法有点笨拙而且不优雅。是否有更好,更简洁的方式来表达上述内容?
假设我无法更改变量名称和常量名称。
答案 0 :(得分:1)
您可以使用center method
a = "abc"
"abc.center(a.size + 4 * 2)
=> " abc "
答案 1 :(得分:1)
“pad”是什么意思?总是在每一边添加相同的字符串?
"#{Module1::Model1::BITMASK_PADDING}#{borrowed_book_bitmask}#{Module1::Model1::BITMASK_PADDING"}
“优雅”是什么意思?插值比串联更加优雅(而且性能更高的IIRC,我可能不会)。如果borrowed_book_bitmask
是一种方法,那么您可以将其嵌入到方法中,或使用装饰器来封装功能。
答案 2 :(得分:1)
在我看来,不完美来自于模块参数的重复;我不得不在视觉上解析两个长期术语来检查它们是否相同。
pad = Module1::Model1::BITMASK_PADDING
borrowed_book_bitmask = pad + borrowed_book_bitmask + pad
......太明显了?也许这对我来说更优雅。
答案 3 :(得分:0)
borrowed_book_bitmask.gsub! /\A|\z/, Module1::Model1::BITMASK_PADDING