0
2
テーマ、知りたいこと
アンケートみたいな感じです。
PHPやPythonではデフォルトで public なので省略できますが、JavaやC#では省略できませんよね?
では、みなさんどちらがお好みですか?
また、どちらのルールが多かったですか?
- 省略可能な言語では常に省略する
- 常に記述する
背景、状況
自分の趣味開発でどうしようか悩んでいるために生じた疑問です。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
回答10件
#1
総合スコア118268
投稿2023/05/18 04:54
あくまで個人環境として、PHPですが、可能な限り書くようにしています。
ただ質問板などの回答する場合などはなるべく簡素化した方が見やすくなるので、あえて書かないこともあります
PHPの公式マニュアルのサンプルもコンストラクタ(デコンストラクタ)などはpublicをつけたりつけなかったり統一されていませんね。
#2
退会済みユーザー
総合スコア0
投稿2023/05/18 04:56
省略しないのが常識。議論する対象じゃない。
一般的なコーディング規約で決まっている。
#3
総合スコア147010
投稿2023/05/18 05:06
編集2023/05/18 05:11補足にはなりますが、JavaScriptなど「そもそもpublicと書くことができない(#で始めたものがprivate扱いとなる)」言語もあります。
また、C++ではpublicやprivateはメソッドに対して付けるのではなく、これから宣言されるメソッドの性質を設定するモード切替となっています。
Rubyではpublicやprivate自体もメソッドなので、動的に設定することすら可能です。
…というように、言語が違えば文法や機能性が異なる分野ですので、言語を決めずに一般論を募ること自体が有意でないと感じました。
#4
総合スコア12327
投稿2023/05/18 09:29
(C++とC#くらいしか知らない者ですが)
- C++ で
structのメンバが全てpublicな存在である場合にはわざわざpublicって明示的に書かない. - 他は書く.
#5
総合スコア80892
投稿2023/05/18 09:38
型などと同じく明示します。(型宣言必要がない言語でも、機能がある限りは明示します)
結局はプロジェクトなどのルール次第でしょうけど、自分が書いたコードでさえ時間が経てば他人のコードのようなものなので、書いておくことで得られる恩恵の方が大きいです。
#6
退会済みユーザー
総合スコア0
投稿2023/05/18 10:15
もちろん「2. 常に記述する」です。自分的には異論は認めないというレベルの話です。
#7
総合スコア16612
投稿2023/05/18 11:56
省略するメリットがよほど大きくないかぎり明記します。(publicに限らず)
#8
総合スコア9
投稿2023/05/23 08:42
編集2023/05/23 08:43Java については,明示的にアクセス修飾をしないことにより,アクセシビリティ(アクセス制御)は「package private」になると下記のドキュメントにはあります.
参考1:https://docs.oracle.com/cd/E57014_01/core/FMWGL/glossary.htm#sthref17
参考2:https://docs.oracle.com/javase/jp/12/security/java-security-overview1.html#GUID-65C96219-B2AB-4205-808E-5B41CB2AD694
一方,C# においては,アクセス修飾の対象ごとにデフォルトのアクセシビリティが定まっており,クラスの子メンバにおいてはそれが private 相当であり,むろん public に比べ制限されるようです.
参考:http://did2.blog64.fc2.com/blog-entry-208.html
以上から,アクセス修飾子を省略可能な場合はあれども,それによって規定されるアクセスレベルは言語によってしばしば異なるので,できる限り明示的にする戦略を取った方が良いかなと思う次第です.
#9
総合スコア147010
投稿2023/05/23 09:19
逆に、Javaでpackage privateを明示する文法がないのも悩みの種です。
#10
総合スコア28675
投稿2023/05/23 23:55
C# では最近までインターフェースのメソッドにはアクセス修飾子をつけることができず、全て public でした。
それぞれの言語やプロジェクトでルールがあるはずなので、それに従うのが良いと思います。
個人的なこだわりの強いソースは読みにくくなり、指摘もされやすくなるため、一律にどうこういう個人的な決まりは作らない方が心の平和が保てると思います。