こんばんは。
直接プログラムに関わらない&C言語に限った話ではないので、ここで質問して良いものか迷ったのですが、教えていただいてもよろしいでしょうか。
ドキュメントや技術系のブログ等で、あるクラスに属する関数の説明をする時などに、引数の有無に関わらず
「クラス名::関数名() を使用して~」
というような表記がなされているのをよく見かけます。
クラス名と関数名をダブルコロンで区切り、引数が無いかのように丸括弧を付けるというものです。
C++の場合は「::」はスコープ解決演算子ということで納得できますが、スコープ解決演算子のない他の言語の場合でもこの書き方が使われることがしばしばあります。
例 : PShape::addChild() \ Language (API) \ Processing 2+ (分かりにくいですがページの<title>です。)
何かプログラミング界の慣例的なものがあるのでしょうか?
もちろん関数を呼び出すときのようにドットで区切られていることも見かけます。
例 : ActionScript3.0 プロフェッショナルガイド - 野中文雄 - Google ブックス
また、最後の丸括弧が書かれていないこともあったりします。
例 : ContentControl.AddChild メソッド (System.Windows.Controls)
今後ブログ等を書いていく上で参考にしたいのですが、どのようなスタイルが一般的でしょうか?
よろしくお願いいたします。
「クラス名::関数名()」という記述方法
Re: 「クラス名::関数名()」という記述方法
一般的には区切りには :: か . か # がよく利用されます。
カッコを書くのはメソッドであることを明示したい場合です。
どの区切りが好んで使われるかは言語によって異なるので、公式のドキュメントなどを参考にするとよいと思います。PHPは :: でPyhtonだと . ですね。
Rubyなんかだと メソッドは # でクラスメソッドは . がかなり広く使われているので :: などを使うとさすがに違和感があります。
カッコを書くのはメソッドであることを明示したい場合です。
どの区切りが好んで使われるかは言語によって異なるので、公式のドキュメントなどを参考にするとよいと思います。PHPは :: でPyhtonだと . ですね。
Rubyなんかだと メソッドは # でクラスメソッドは . がかなり広く使われているので :: などを使うとさすがに違和感があります。
Re: 「クラス名::関数名()」という記述方法
ありがとうございます。
納得です!
少しですが他の言語での区切りついて、公式等のドキュメントをざっと調べてみたので念のため残しておきます。
ドキュメントのページタイトルでクラス名と繋がれて表記されていなかったものは、文章中をじっくり探していこうと思います。
ありがとうございました。
例に挙げた「ContentControl.AddChild メソッド」のように、メソッド・関数であることが分かる場合は括弧が不要ということですね。h2so5 さんが書きました:カッコを書くのはメソッドであることを明示したい場合です。
納得です!
少しですが他の言語での区切りついて、公式等のドキュメントをざっと調べてみたので念のため残しておきます。
- C++ (MSDN) 「クラス名::関数名」
- C# (MSDN) 「クラス名.メソッド名」
- VB (MSDN) 「クラス名.メソッド名」
- Objective-C (Apple Developer) 「+クラスメソッド名」, 「-インスタンスメソッド名」 (クラス名と繋がれていませんでした)
- Java (javadoc) 「クラス名#メソッド名」
- JavaScript (Mozilla Developer Network) 「オブジェクト名.関数名」
- ActionScript (Adobe) 「クラス名.関数名」
- Perl (公式) (クラス名と繋がれていませんでした)
- Processing (公式) 「クラス名::メソッド名」
ドキュメントのページタイトルでクラス名と繋がれて表記されていなかったものは、文章中をじっくり探していこうと思います。
ありがとうございました。