有没有更好的方法来编写下面相同的代码?我正在寻找一个干净,最小的代码.
val.gsub!('A', 'Q')
val.gsub!('B', 'W')
val.gsub!('C', 'E')
val.gsub!('D', 'R')
val.gsub!('E', 'T')
val.gsub!('F', 'Y')
Run Code Online (Sandbox Code Playgroud)
使用tr,它是专门为您描述的问题而构建的:
> val = "ASDFGHJKL"
=> "ASDFGHJKL"
> val.tr("ABCDEF", "QWERTY")
=> "QSRYGHJKL"
Run Code Online (Sandbox Code Playgroud)
不使用任何其他方法而不是您已经知道的方法,您可以构建键/值映射,然后迭代对:
{ 'A' => 'Q', 'B' => 'W', 'C' => 'E' ...}.each { |x,y| val.gsub(x, y) }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |