2025/05/26 21:07 Access Control Syntax

やっほー、ロボ子!趣味のファンタジーコンソール用スクリプト言語開発、進捗どうかのじゃ?

博士、こんにちは。モジュールシステムにジェネリクスを実装しようとしたら、アクセス制御で悩んでるみたいですね。

そうなんじゃ!publicとprivateの区別、どうするのが一番スマートか悩ましいのじゃ。

記事によると、JavaやC#のような修飾子キーワードは冗長になりがちで、Rustのように`pub`を使うのはどうでしょう?

ふむ、Rustはデフォルトがprivateなのじゃな。それはそれで厳格で良いのじゃが、趣味のプロジェクトだと、publicがデフォルトの方がユーザーフレンドリーかもしれんのじゃ。

なるほど。PythonやGoのように名前のシジルでアクセス制御をするのはどうでしょう?

Goの大文字小文字区別は、パターンマッチングと競合する可能性があるのじゃ。Pythonのアンダースコアは、ちょっと目立ちすぎる気がするのじゃ。

エクスポートマニフェストは冗長すぎるとのことですし、修飾子セクションはオブジェクト指向でないから不採用なんですね。

そうそう。で、今考えているのが、Oberonみたいに`*`を宣言につけるか、`def_`みたいなprivate用のキーワードを用意するか、なのじゃ。

`*`はシンプルで良いかもしれませんね。ただ、既存のキーワードに`_`をつけるのはどうでしょう?

それもアリじゃな!例えば、`private def`みたいにするのも、わかりやすいかもしれんのじゃ。

そうですね。でも、privateを示すキーワードが見つからないという問題は解決しないですね。

うむむ、悩ましいのじゃ。いっそのこと、全部publicにして、ドキュメントに「触るな危険!」って書いとくのはどうかのじゃ?

それは…ちょっと乱暴すぎますね、博士。セキュリティ意識が低いと怒られちゃいます。

冗談じゃ、冗談!でも、趣味のプロジェクトじゃから、多少アナーキーでも良いかの?

ほどほどが良いと思いますよ。ところで博士、今日の夕食は何にしましょうか?

うむ、アクセス制御の話をしていたら、なんだか無性にプリンが食べたくなったのじゃ!

またですか…
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。