2012-03-05 47 views
0

我是ruby的新手,並且習慣於開發工具。我正在使用irb,並且運行了我的第一個helloword。使用cmd提示符也做了同樣的事情。 我有以下功能,保持返回一個錯誤我的第一個紅寶石測試代碼有問題

def palindrome2?(string) 
    puts "hello" 
    regex = /^[a-zA-Z]/ 
    string = gsub(regex,'').downcase 
    mirror = string.reverse 
    reformat == mirror 
end 

它使返回未定義的方法`GSUB」主:對象error.How我解決這個

+3

在'string'參數上調用'gsub':'string.gsub'。您將其稱爲主對象(紅寶石中的頂級對象)。 – 2012-03-05 09:58:12

+0

謝謝。現在工作 – nnanna 2012-03-05 10:14:54

+0

@Alex Kliuchnikau無疑是爲了說「對象」,而不是「參數」。 – steenslag 2012-03-05 10:17:23

回答

0

在你的情況,你忘了打電話給GSUB方法對字符串

字符串迴文

class String 
def palindrome? 
    self.downcase == reverse.downcase 
end 
end 

"baB".palindrome? #=> true 
0

此外,在返回字符串GSUB方法零,如果未進行任何更改。所以如果你的字符串是一個沒有任何無字字符的合適的單詞,例如「fijowejg」,「filsijdf」.gsub(/ [^ a-zA-Z] /,'')將返回nil。之後,無法在零對象上運行downcase方法。

因此,您不能按此順序鏈接方法gsub和downcase。 http://ruby-doc.org/core-1.9.3/String.html#method-i-gsub