プログラムする際に「isVaild()」など、先頭にisがつく関数(メソッド)名の返値はbooleanという命名方法があるようですが、それ以外にありましたら教えてください。


ちなみに「get~、set~」以外のものでお願いします。

※URLのみの回答はご遠慮ください

回答の条件
  • 1人2回まで
  • 登録:2009/04/25 11:47:04
  • 終了:2009/05/02 11:50:03

ベストアンサー

id:tomopo No.1

matsuoki回答回数15ベストアンサー獲得回数32009/04/25 12:02:11

ポイント30pt

http://www.kawabata.com/dotnet/CodingStdCS.pdf より

(20) Boolean変数を返すメソッド

Is + 形容詞、Can + 動詞、Has + 過去分詞、三単元動詞、三単元動詞 + 名詞。

(21) bool変数

形容詞、is + 形容詞、can + 動詞、has + 過去分詞、三単元動詞、三単元動詞 + 名詞。

として、

bool IsEmpty()

bool CanGet()

bool HasChanged()

bool Contains(object x)

bool ContainsKey(string key)

bool isEmpty;

bool dirty;

bool containsMoreElements;

などがあげられています

悪い例:

bool Empty() //「空にする」という動詞的な意味に取れる。

bool CheckXXX() // trueがどちらの意味か分かりづらい。

理由: if, while文等の条件が読みやすくなる。またtrueがどちらの意味か分かりやすい。

別に決まりがあるわけではなく、その方が読みやすい、ってだけだと思います。

(まぁそれをまとめていくとコーディング規則になるんでしょうけど。)

id:xxmasaxx

おおっ結構色々あるんですね。リンク先のPDFも参考になりました。

回答どう有り難うございました。

2009/04/25 12:15:47

その他の回答(3件)

id:tomopo No.1

matsuoki回答回数15ベストアンサー獲得回数32009/04/25 12:02:11ここでベストアンサー

ポイント30pt

http://www.kawabata.com/dotnet/CodingStdCS.pdf より

(20) Boolean変数を返すメソッド

Is + 形容詞、Can + 動詞、Has + 過去分詞、三単元動詞、三単元動詞 + 名詞。

(21) bool変数

形容詞、is + 形容詞、can + 動詞、has + 過去分詞、三単元動詞、三単元動詞 + 名詞。

として、

bool IsEmpty()

bool CanGet()

bool HasChanged()

bool Contains(object x)

bool ContainsKey(string key)

bool isEmpty;

bool dirty;

bool containsMoreElements;

などがあげられています

悪い例:

bool Empty() //「空にする」という動詞的な意味に取れる。

bool CheckXXX() // trueがどちらの意味か分かりづらい。

理由: if, while文等の条件が読みやすくなる。またtrueがどちらの意味か分かりやすい。

別に決まりがあるわけではなく、その方が読みやすい、ってだけだと思います。

(まぁそれをまとめていくとコーディング規則になるんでしょうけど。)

id:xxmasaxx

おおっ結構色々あるんですね。リンク先のPDFも参考になりました。

回答どう有り難うございました。

2009/04/25 12:15:47
id:hijk05 No.2

hijk05回答回数1307ベストアンサー獲得回数232009/04/25 14:37:05

id:xxmasaxx

ありがとうございます。

2009/04/26 12:05:42
id:AmaiSaeta No.3

天井冴太回答回数74ベストアンサー獲得回数82009/04/26 02:38:16

ポイント20pt

is~、get~、set~もそうですが、『関数は動詞で始める』というのは結構一般的な命名規則かと思います。

他には、

  • 1文字目はクラス名は大文字に、その他のものは小文字とする
  • 変数は名詞にする(boolean型は例外的に動詞から始まることがあります)
  • 定数は大文字で単語間を"_"で繋ぐ
  • ローマ字を使わない(下記の点で曖昧な点が残りやすい)
    • 日本式とヘボン式が混ざりやすい(例: 視界→sikai? shikai?)
    • 長音の書き方が複数有る(例: 賞状→shojo? shoujoo? shohjoh?)
    • 『な』行と『ん』→『あ』行の書き分け(例:親愛→shinai?→しない?)
  • (C/C++)#defineによるマクロは大文字で単語間を"_"で繋ぐ

等も結構一般的ではないかと。

もっと全体的な話をすると、

isValidのように、『名前を構成する単語の先頭の文字を大文字で書く

』ものを『ラクダ記法』(大文字をらくだの瘤に見立ててます)、

is_validのように、『単語と単語の間を"_"で区切る』ものを『ヘビ記法』(ヘビのように文字が(瘤無しで)続くので)と呼んだりします。

また、名前の前、或いは後に、対象の性質を表す文字を付加するという『ハンガリアン記法』という物も存在します。

id:tomopo氏の挙げた『コーディング規約』の他、『命名規則』もググってみるといいでしょう。

id:xxmasaxx

ヘビ記法は初めて聞きました。

『命名規則』で調べてみます。回答有り難うございました。

2009/04/26 12:06:34
id:monamour555 No.4

もなか回答回数12ベストアンサー獲得回数22009/04/26 03:00:16

ポイント20pt

リスト型から配列型に変換する toArray() …とか?

Java, JavaScript, PHP, .NET系,などなど複数の言語でこのメソッドはあります.

ちなみに,LISP系では,booleanを返す関数はisXXXではなくXXXpやXXX?という表記が使われることが多いです.

その流れで,他の言語でも boolean を返す関数やマクロに _p という suffix を付ける場合があります.

下記は,GNU系のツールでお馴染みの libiberty のコードの一部です.

#define hex_p(c) (hex_value (c) != _hex_bad)

id:xxmasaxx

なるほど、言語によっても違いがあるんですね。面白い。

有り難うございました。

2009/04/26 12:08:36

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません