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

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

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

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

Q&A

解決済

1回答

606閲覧

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

pyon_kiti_jp

総合スコア251

Ruby

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

0グッド

1クリップ

投稿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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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

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

回答1

0

自己解決

慣習的に?はつけましょうということで、自己解決

投稿2022/09/29 06:28

pyon_kiti_jp

総合スコア251

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問