2016-11-08 64 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