質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

解決済

boolean型の戻り値を返すメソッドには?をつけるべきか、つけなくてもいいのか

pyon_kiti_jp
pyon_kiti_jp

総合スコア232

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

1回答

0リアクション

1クリップ

192閲覧

投稿2022/09/28 04:56

前提

ruby 2.6

内容

Boolean型の戻り値を返すメソッドを作ります。メソッドが、true / false のどっちかを返します。
例えば、次のメソッド、test1?とtest2は共に、trueを返します。

メソッド名に?をつけてもつけなくても同じ結果となります。
?をつけていた方が、メソッド名だけを見て判断して、Boolean型の戻り値を返すんだなと判断することができます。?をつけるのは、単にそれだけの理由なのでしょうか。
?をつけるのは、単に、慣習的な理由なのでしょうか?
それ以外の理由があるようでしたら教えていただけませんでしょうか。

def test1?(flg) if flg == 1 else return false end return true end def test2(flg) if flg == 1 else return false end return true end puts test1?(1) #=> true puts test2(1) #=> true

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

maisumakun

2022/09/28 04:57

質問の前に調べてみたことはありますか?
pyon_kiti_jp

2022/09/28 07:39

こんなところに回答があるのですね。情報のご提供ありがとうございます。 でも、booleanを返すメソッドで?をつけなくても文法上エラーになる仕様にはなっていないですけどね。
otn

2022/09/28 09:08

> でも、booleanを返すメソッドで?をつけなくても文法上エラーになる仕様にはなっていないですけどね。 今の処理系本体では静的な型チェックを行ってないので、そもそもエラーにしようが無いです。 3.0で型チェックの仕組みが入ってきたので、今後、型チェックツールが警告を出したりは可能でしょうが、エラーにはしないでしょうね。
winterboum

2022/09/28 23:33

? をつける必要はないですが ?をつけたら boolean というか、「戻り値が if の判定部に使えるものにする」というのが 推奨というか慣習というか暗黙の了解というか、、になってます。
pyon_kiti_jp

2022/09/29 00:02

なるほどです。ご回答ありがとうございます。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。