- がふっ^^; -- kz3
- @が気に入らない人の方が多いと思うので、
宜しければそちらの意見も書いていただけると嬉しいです。 -- りすと?
- (こっちに書き込むのもなんか気が引けるなぁ...もともと開発wikiの話題だし)気に入らないとは違いますよ^^;飛躍しすぎです。モジュールベースのスクリプト(変数の管理などをモジュールで行うなど)では@で指定することが有効というのは分かりますが、そうでないスクリプトで多用するとかえって読みにくくなってしまうこともあるということです。それに「読みにくさ」とは単に@だけの問題ではなく関数呼び出しのネストも関わってきます。「f@fc」でfがfcで定義されていることや、「add@fc」でaddがfcで定義されていることは分かっても、
logmes str(f@fc(add@fc,f@fc(add@fc,f@fc(sub@fc,5,2),2),f@fc(sub@fc,f@fc(add@fc,1,2),4)))
これが読みやすいと言えるかどうかです。まぁ「@だらけ」と言ってしまったので「@が気に入らない」と受け取られても仕方なかったですね...。そういうわけで@は嫌いではありません。 -- kz3
- 別にkz3さんが@が嫌いだと思ったから書いた訳ではないですよ。そうだったら開発wikiに書くし、そういえば自分も昔理解はしていたけど@をつける意味が見出せなかったからで、いつのまにか@使いまくってるなあと思って書きました。これから@を使った方がいいだろう人もいるだろうし。そう言えば、またサンプルスクリプト説明なしですね。引数もオブジェクト名も適当な名称からこれが空いた時間にパパッと書いたスクリプトであることがわかります -- りすと?
- >一人でプログラミングしてるのに、名前の衝突なんて気にする必要はあるのでしょうか?
- 意外とありますよ。というより、気にしなきゃしないだけ衝突しますよ。僕の場合例えば数値にn文字列にsとか適当につけてって、違う処理を書きたくなったらその処理をモジュールに包む。上級者でも#globalとかつけちゃう人いるみたいなんで、僕のスタイルが良いってことではないですけれど、この一言にはそういう宗教論争みたいな面もあるので、自分のスタイルを押し通そうとはしないでくださいね。y.tack
- >気にしなきゃしないだけ衝突しますよ。
- >僕の場合例えば数値にn文字列にsとか適当につけてって、違う処理を書きたくなったらその処理をモジュールに包む。
- 違う処理を書きたくなったらその処理をモジュールにする、のと、nとかsとか適当につけるのと、名前の衝突は別問題だと思うが
- 変数名を適当につけるからモジュールで包む必要が出てくるプログラミングスタイルをりすとはとっているだけ
- 逆にいうとモジュールを使って@だらけのスクリプトを書いていて効率よくプログラミングしている気になっているだけの可能性もある
- 意味のある変数名をつければ@だらけのスクリプトになることはない
- >上級者でも#globalとかつけちゃう人いるみたいなんで、
- なるほどりすとは上級者なんだな
- #globalつけちゃうってのが意味不明
- >自分のスタイルを押し通そうとはしないでくださいね
- 「モジュールについて」という大々的でglobalなタイトルの割りには、ここで語られてるモジュールについては、「りすと的なモジュールについて」という一個人のプログラミングスタイルという事実
- こういうモジュールの使い方はモジュールをモジュールとして使えていない。もっと分かりやすく言うと「名前の衝突を避ける」がモジュール本来の使い方ではないと言うこと。
#module a
#deffunc func_a
// 何かの処理
return
#global
#module b
#deffunc func_b
// 何かの処理
return
#global
#module c
#deffunc func_c int ia, int ib
// 何かの処理
return
#global
// Main
func_a
func_b
func_c v@a, v@b
// End of Script
- つまり一個人のプログラミングスタイルはご自分のHPで宣伝なさってくださいということ。
- >なるほどりすとは上級者なんだな
- アウチ!HSPは(マニュアルの中級者向けってとこが読めるので)中級者。プログラミングに関しては初級者です。そんなことを開発wikiの名前ページに書いていましたが削除されちゃったなぁ
- >#globalつけちゃうってのが意味不明
- ごめんなさい#globalキーワードはマクロやAPIで変数ではなかったですね。上級者の某氏のスクリプトを読んだ時にAPIに#globalキーワードつけまくってて、APIなんだか定義した命令なんだか、よくわからなくて読めなかったんですよ
- >誰に言ってるんだろw
- 「一人でプログラミングしてるのに、名前の衝突なんて気にする必要はあるのでしょうか?」って書いた人にです
- >「名前の衝突を避ける」がモジュール本来の使い方ではないと言うこと。
- 昔のモジュールはモジュール変数なかったんで、「名前の衝突を避ける」が目的だったんだと思うんですけど...y.tack
|