2016-11-08 29 views
2

返回concated字符串我有这样的代码红宝石:为“ n”在一行

def rectangle 
    "|------------------|\n" + 
    "|     |\n" + 
    "|     |\n" + 
    "|     |\n" + 
    "|     |\n" + 
    "|     |\n" + 
    "|     |\n" + 
    "|     |\n" + 
    "|     |\n" + 
    "|------------------|\n" 
    end 

,我想重构它。但由于某种原因,如果我尝试以任何其他方式连接字符串,“\ n”将停止工作,并且它将返回一行。

def rectangle 
    a = "|------------------|\n" 
    b = "|     |\n" 
    a + b + a 
end 

我尝试使用

System.getProperty( “line.separator”, “\ n”)

在类似职位的建议,但它不是有用(或者我没有做对的)。这是我的课程的一部分。感觉像我失去了明显的东西。

+0

字符串是总是一行。如果您打印它只有多行。你尝试过吗?不要忘记Ruby可以多次使用字符串:'' - '* 10'比你在这里使用起来要容易得多。 – tadman

+0

如果我使用print,那么它将返回零,我希望它返回一个由 - 和|就像听起来很愚蠢 – Agata

+0

'puts'和朋友返回'nil',这就是他们所做的。显示字符串,它会看起来很好。我认为你会将“检查”符号与实际内容混淆。 – tadman

回答

2

一个简单的例子是:当通过`inspect`显示

def rectangle 
    a = "|#{'-' * 10}|" 
    b = "|#{' ' * 10}|" 
    ([a] + [b] * 5 + [a]).join("\n") 
end 

puts rectangle 
+1

更好:'[a] + [b] * rows + [a]'。 – tadman

+0

@tadman是的:)谢谢 – idej