[過去ログ] スレ立てるまでもない質問はここで 161匹目 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
249: 2022/09/29(木)17:56 ID:vOlJ4Qt9(1/3) AAS
>>244
説明が究極的に下手
てか後者は破壊的メソッドのこといってるなら、初心者の段階でそんなの描くのはほぼ間違ってる
250(1): 2022/09/29(木)18:48 ID:p0DTtsl5(2/3) AAS
「他のクラスでメソッドで作った変数Bを変数Aに代入したいとき」というところでどっと疲れるw
ミュータブルやステートフルのほうが便利じゃん!って初心者はまず飛び付くんだけど、経験を経て逆だったことに気付くんだよなあ
251: 2022/09/29(木)19:03 ID:nA4Nikqb(1/3) AAS
そりゃミュータブルから教えるからだよ
i=i+1を教えられて「なんでや!iが0なら0=1になるやんけ!わけわからん!」という段階を経て変数というものは書き換えるものと刷り込まれていく
つまりだいたいC言語のせい
252: 2022/09/29(木)19:14 ID:98MCpLln(1) AAS
>>244
データを保持して他のメソッドで使うかどうかで決めるべきじゃない?
253(1): 2022/09/29(木)19:16 ID:p0DTtsl5(3/3) AAS
いやローカル変数は別にミュータブルでもいいよ
さほど問題にならない
254: 2022/09/29(木)19:17 ID:vOlJ4Qt9(2/3) AAS
デザパタとかアンチパターンとかOOPとか
既存の教えをぶっちぎるつもりなら上位0.1%目指すってこと
そういう気がないなら言われた通りに書きなさい
255: 2022/09/29(木)19:17 ID:yzYmCLI1(3/10) AAS
>>250
別クラスのメソッド内で作った変数Bをメインクラスの変数Aに入れたいときってことなんだが…
まぁなんか見た感じ言語特有らしいのでその言語のスレで聞きましたわ
なんか色々考えてくれてありがとうございます
256(1): 2022/09/29(木)19:30 ID:xLGmAerI(1) AAS
インスタンスの解放を自前でやる言語でなければ好みの問題の範囲だと思うが
257(1): 2022/09/29(木)19:53 ID:UH+Zd6DV(1) AAS
>>256
そんなのCだけじゃん
C++はスマポ使えば自動解放だし
Rustは常に自動解放だし
そもそも今回の件と解放は関係ないし
258: 2022/09/29(木)19:59 ID:ZjyFu9Pk(1) AAS
>>253
ローカル変数もイミュータブルで良い
for文などの自動更新変数は手動書き換え出来ないイミュータブル扱いの言語が多いから可能
259: 2022/09/29(木)20:55 ID:HxLzcltj(1) AAS
>>244
クラスインスタンスをフィールドやシングルトンなりで長期間保持するならプロパティにする
短期間保持(メソッドやブロック)ならリターンにする
たまにパターンによって複数のメソッド呼び出しをif文で変えてる場合はプロパティにしてるのコードを見かける
個人的には必要な情報をコンストラクタで渡すからリターンで書くけどね
260(1): 2022/09/29(木)20:57 ID:D9meFc20(1) AAS
>>244が宇宙人みたいに見えるw
実際のコードでも提示した方が良いのでは?
261(1): 2022/09/29(木)21:25 ID:5k0MXCr/(1) AAS
バックグラウンドスレッドで数秒毎にメソッドを実行して結果をプロパティに保存
プロパティが変更されたらそれをオブザーブしてるスレッドがプロパティを読んで画面を更新
みたいなのはよくある話
262(1): 2022/09/29(木)21:38 ID:nA4Nikqb(2/3) AAS
>>260
MAUI Highschoolていう動画を公開してるやつだぞ
最新の動画がまさにそういう戻り値の変な渡し方をしてたから
class Aにメソッドとプロパティがありメソッドの戻り値はvoidで呼び出すと返すべき値をプロパティにセットする
呼び出し側はclass Aのインスタンスを作成してメソッドを呼び出した後にプロパティを参照する
そのプロパティはclass A側で保持する意味のないものでもう使わない
263: 2022/09/29(木)22:01 ID:C9z6YVIX(1) AAS
>>261
それスレッド間共有メモリの悪手
264: 2022/09/29(木)22:17 ID:mQhfaXoY(2/2) AAS
クラス名や変数名にカナや漢字が使える時代だから
> 変数A=クラス.メソッド(引数)
や
> 変数A=クラス.プロパティ
ぐらいはいいけど
> クラス=ニュークラス
は違和感あり過ぎ
265: 2022/09/29(木)22:23 ID:o1s2vCU9(1) AAS
パース処理を非破壊的に書こうとすると一度しか使っていない似たような名前が増える
266: 2022/09/29(木)22:27 ID:yzYmCLI1(4/10) AAS
>>262
そうするとreturnで返したほうがいいんですかね?
副作用的なやつがあるのかなと
処理スピードが遅くなるとか
今まだ3ヶ月しかプログラミングやってないのでそういう基本的なことができてない
267(1): 2022/09/29(木)22:31 ID:yzYmCLI1(5/10) AAS
awit asyncの処理だとタスクしか戻らないので変数がタスク以外のときはプロパティを渡すしがないのかなってのはありますね
その感じで覚えちゃってるので
268(2): 2022/09/29(木)22:34 ID:+nkVuy43(1) AAS
>>267
そんな欠陥言語があるのか?
269: 2022/09/29(木)22:35 ID:kOL/SO6R(1) AAS
>>257
Delphi経験者はこういうときインスタンスの破棄はどこですべきかとかついつい考えちゃうんですよ
ごめんね
270: 2022/09/29(木)22:44 ID:yzYmCLI1(6/10) AAS
>>268
欠陥じゃないと思うけども…
画像リンク
271(1): 2022/09/29(木)22:56 ID:vOlJ4Qt9(3/3) AAS
3か月の段階で非同期処理扱うの早い
それなりに設計もコーディングも能力あげないと同期・非同期は自分自身の手で複雑な構造作る事になるものだから
2~3年後くらいでもいいよそれ
272(1): 2022/09/29(木)23:04 ID:yzYmCLI1(7/10) AAS
>>271
でもTask.Delayとか非同期処理じゃないとできない処理がたくさんあるんです!
HttpRequestとかも同期処理用のメソッドを書くとVSがこれは古い記述方法ですって言ってくるので非同期処理のメソッド使わにゃならんのです!
ただまぁreturnで値が取れること知れたので良かったですわ
returnとかほぼ使ったこと無い…
273(2): 2022/09/29(木)23:07 ID:S94uJYpZ(1/2) AAS
>>244をRubyで書くと
class Hoge
def method(arg)
b = 1
return b
end
end
obj = Hoge.new
a = obj.method(arg)
これを
class Hoge
attr_reader :b
def method(arg)
@b = 1
end
end
obj = Hoge.new
obj.method(arg)
a = obj.b
にするみたいなこと?
274: 2022/09/29(木)23:10 ID:yzYmCLI1(8/10) AAS
>>273
Rubyわからんけどそんな感じ
275: 2022/09/29(木)23:28 ID:oF7kbS+2(1) AAS
もうカオスだなww
276: 2022/09/29(木)23:36 ID:nA4Nikqb(3/3) AAS
>>268
んなこたない
そいつがTask<T>を知らないだけ
277(1): 2022/09/29(木)23:43 ID:S94uJYpZ(2/2) AAS
変数Aに何らかの値を代入するのが目的なら
後者を選択する理由が自分には見つからない。
何かありそう?
278: 2022/09/29(木)23:50 ID:yzYmCLI1(9/10) AAS
>>277
単純に覚えているので楽だから
上下前次1-新書関写板覧索設栞歴
あと 724 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.013s