2017-05-23 18 views
0

first_longer_than_secondというメソッドを、firstというパラメータとsecondというパラメータで定義します。このメソッドは、firstワードが渡された場合にtrueを返します。secondワードの長さ以上です。それ以外の場合はfalseを返します。ここでメソッドが呼び出されることだろうかだと期待リターン:2つの文字列の長さをRubyと比較する

これは私が持っているものです。

def first_longer_than_second(first, second) 
    if first.length >= second.length 
    puts true 
    else 
    puts false 
    end 
end 

私はエラーを取得していますし、私はわからない理由。

+2

あなたはどんなエラーを投稿してください。 – bork

+1

あなたのコードを正しくフォーマットしてください - https://meta.stackexchange.com/questions/18614/style-guide-for-questions-and-answers – skwidbreth

+0

あなたのエラーが何であるかを知らずに暗闇の中で撮影しましたが、 'puts'はあなたのメソッドのように聞こえるものではない 'nil'を返します... – jmschles

答えて

2

>=などのRuby比較演算子は、自然にブール値を返します。条件付きを使う必要はなく、truefalseという文字列を返すことはほとんどありません。また、Rubyの規則では、ブール値を返すメソッドの名前に疑問符を使用します。このような方法については

、Rubyは、私たちがこれを書くことができます:

def first_longer_than_second?(first, second) 
    first.length >= second.length 
end 

次に、あなたはこのようにメソッドを呼び出すことができます。それは返すので、メソッド名はやや混乱していることを

>> first_longer_than_second?('hello', 'sir') 
=> true 

注意firstの長さがsecondの場合はtrue。必要に応じてメソッドの名前を変更することを検討することもできます。名前は関係ありません!

関連する問題