- 1 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 21:45:04.614 ID:p7fnBhykd
- 1回しか呼び出されない関数、メソッドの意味とは
- 2 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 21:45:29.107 ID:5h3RX9bva
- 見やすさのためだよ
- 3 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 21:47:06.886 ID:evI8TtHS0
- 処理に名前を付けてあげるためだよ
名前を付けたら正体が見破りやすくなるからね - 4 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 21:47:10.800 ID:qbFQe/I80
- 何をするための関数なのかわかりやすい
- 5 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 21:48:32.815 ID:YlWVIBul0
- なるべく手をかけて綺麗なソースをかけ
あとですごく助かることがある - 7 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 21:50:30.527 ID:HFerJYKO0
- 可読性だ
場合によっては処理速度を落としてでも可読性を優先させるべき - 8 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 21:50:35.586 ID:p7fnBhykd
- なるほど
- 9 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 21:53:29.681 ID:V0NJeFfdx
- ネストを浅くするため
for文やwhileのネストが2重以上になったらbreakやcontinueを駆使して
ループから抜け出す処理を組むのがめんどいけど
関数にするとreturnで一発で処理を抜けられる - 11 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 21:56:54.928 ID:GYuQyHvFa
- >>9
そんな目的で関数使うなや
処理に名前をつけるため、わかりやすさのため、テストしやすさのためならいいが - 12 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 21:59:11.981 ID:V0NJeFfdx
- >>11
ネストを浅くするのはわかりやすさのための基本テクぞよ - 13 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 21:59:12.149 ID:RtYMNKpH0
- >>11
いや、正しいよ
その処理に特定の意味があるならだけど - 10 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 21:56:52.215 ID:8tPDpRni0
- For i =1 to rowmax
For j = 1 to rowmax2
for k = 1 to rowmax3俺こんな風にマクロ作ってるけどうざい?
- 14 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:00:15.136 ID:RtYMNKpH0
- 基本的に名前をつけれるものは関数にしていい
かつ状態を持たなければテストも確実になるからいいことづくめ - 15 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:00:22.917 ID:5h3RX9bva
- 俺だったら多重ネストを抜ける時はgotoを使うね
好みの問題だけど - 16 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:01:07.118 ID:iHGy/7JB0
- >>15
っラベルつきbreak使える言語限られてるけど
- 22 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:03:39.196 ID:BZ+9G3yh0
- >>16
何これC#にも欲しい - 17 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:01:52.371 ID:HFerJYKO0
- 後藤は存在しない言語もあるからなあ
- 18 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:02:42.834 ID:5h3RX9bva
- ラベル付きbreakとかあるのか
Javaはやらんから知らなかったわ - 23 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:04:00.727 ID:iHGy/7JB0
- >>18
まあ実質gotoなんだけどねw
単にラベルを書ける場所とgotoの使える範囲が制限されてるから安全ってだけで - 19 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:03:20.319 ID:TDD8Clkfp
- カプセル化やぞ
- 20 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:03:20.350 ID:RtYMNKpH0
- 例外でgotoするC言語おじさんがいた
循環的複雑度何それ関数型何それの
アホみたいにネストした1000行関数とか作り出すやばいやつ - 21 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:03:33.831 ID:V0NJeFfdx
- Javaのラベル付きbreakやり方知ってるけど使ったこと無いわ
ラベルに名前を付けるのに労力を割くくらいなら
そのネーミングを関数に使ったほうが有意義じゃね? - 24 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:04:19.236 ID:v7htBmEK0
- breakよりもgotoの方が読みやすいと思うけど思考停止goto叩きが多くて悩む
初学者が多様してスパゲッティ化するのを防ぐために禁じてるのは分かるけどさ - 25 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:08:23.619 ID:iHGy/7JB0
- >>24
正しい使い方さえすれば何も問題ないんだよな
問題は『正しくない使い方もできる』ってだけでアクセス修飾子がなくて基本的に全部publicになる、JSのクラスみたいなもん
- 26 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:12:41.828 ID:rPVNbavJ0
- gotoの正しい使い方って多重ループ抜けるのは確かに許せるけど他あるか?
- 30 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:18:16.028 ID:v7htBmEK0
- >>26
数値計算専門だとそれくらいしかないと思うけど、例外処理でも使うなあ
Linux OS読むような人はよく目にするんじゃないか - 27 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:16:24.767 ID:V0NJeFfdx
- ScalaとかJavaでもStreamAPIを使いだしたら使い捨ての関数だらけになる
- 29 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:17:07.922 ID:iHGy/7JB0
- error2の上はdelete_fugaだな……まあわかるだろうからいいか
- 31 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:19:47.976 ID:3FwJw0ER0
- テストできたりファイル分けられたり処理に名前つけられたりスコープを分けられたり
- 32 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:20:34.666 ID:1EScMxO10
- 全部自分一人で間違いなく作るなら問題ない
でもプログラムは肥大化しててチームで作るのが定石になってるよ
可読、再利用、テストのしやすさなんかを考えると関数化した方がいいよ
一人で作るちっちゃいプログラムを関数化するメリットはないよ
でもそれだと実務の設計の勉強にならないから勉強段階でも関数化すべしと言われるよ - 33 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:21:40.354 ID:HFerJYKO0
- >>32
一人でつくるから問題ないという発想は誤りだ
俺は1ヶ月前に書いたコードなんて覚えてない - 35 名前:ひみつの名無しさん 投稿日時:2020/05/15(金) 22:22:46.130 ID:gUbtywkO0
- 可読性と拡張性が何よりも大事と痛感してる
コメント