1. Mocoゲーム >
  2. Mocoゲームブログ >
  3. もう少し触れたい「配列のすべての要素が条件を満たすならtrueを返す」関数に空配列を渡したらtrueかfalseかのこと


Mocoゲームブログ

ゲーム作成の悲喜こもごも… 開発状況やアプリ(無料ゲーム多数)に関すること、携帯電話やスマホのこと、公式ストア(Google Play, App Store)でのアプリ公開のこと、プログラミングのこと、更新情報などをアップしています。ガラケー時代からかれこれ15年以上継続しているブログです。Android(java)や iPhone開発(Xcode, Objective-C, C++ によるiOSアプリ開発)に関する技術的なことも時々アップしています。
ツイートする

もう少し触れたい「配列のすべての要素が条件を満たすならtrueを返す」関数に空配列を渡したらtrueかfalseかのこと

分類: プログラミングの話
日付: 2023年06月04日公開

昨日ツイートした件ですが、もう少し個人的に触れておきたかったので、ブログで書きます。独りよがりですが・・。

まず、配列を受け取る関数で空配列か、つまり java では length が 0 のときだと思いますが、そもそもそういうチェックが必要な関数は書いたことがないです。これは自分一人で書いているというのがありますが、もし空配列かをチェックしないと駄目なら膨大な関数の頭にそのチェックが入ることになります。これは非現実的です。

もし大きなプロジェクトで別の人が書いたコードから呼ばれるような場合、その人と仕様決めをします。

仕様決めとかしない場合は、正解は true みたいなのを見たのですが「空集合があらゆる集合の部分集合になるというルールに矛盾するから」という理由です。それってプログラミングを超えて数学の論理的な話の気がします。


普通に考えて、例えばですが1年間の毎月の収支が入っている配列(12個の要素)があり、それが全て正なら超優良企業と判定する関数があったとします。

そして、その関数の判定により、真が戻った際に「超優良企業である旨及び毎月の収支」を表示する機能があったとします。ここで誤って空配列を渡すケースを考えると、超優良企業と表示してしまいます。そして毎月の収支は表示できずにフリーズしたり落ちたりするでしょう。

フェールセーフで超優良企業ではないと表示し毎月の収支表示を表示せず落ちない方がシステムとして優れています。前述したように仕様決めしないのが前提です。

自分はフェールセーフは結構大事と考えている方で、フェールセーフに救われて不具合が顕著化しないで済んだことは何回かあります。


あと Twitter で「その後の処理が true を返した方がフェールセーフに働く場合のみ true。」と書いたのですが、これはあまり良くない設計だとは思います。true なのにフェールセーフはなんか直感に反します。

自分がこれをしているかはわかりませんが、false (偽) でフェールセーフの方が直感的で良いとは思います。



アプリゲーム紹介
Mocoゲーム作成で比較的人気の無料ゲーム タンク大作戦 を公開中です。Google Play 及び App Store でダウンロード可能です。



関連ブログ

 プログラミングでは、Warning は「ワーニング」が正しいと思う
 中学校の「技術」という教科で、HTML+JavaScript を学ぶ!?
 全然知らなかったセンター試験にプログラミングがあったこと、DNCLという言語
 デグレ、デグレ、デグレ・・・ プログラムにデグレはつきもの

前後のブログ

 2023年06月06日 iOS 17 は iPhone 8 が対応外って・・
 2023年06月05日 EU(欧州)の巨大IT企業に対する規制が何気にえげつないと思う
 2023年06月04日 もう少し触れたい「配列のすべての要素が条件を満たすならtrueを返す」関数に空配列を渡したらtrueかfalseかのこと
 2023年06月03日 Twitter Blue によりチェックマークが入りました
 2023年06月02日 アップルに「アプリストア」開放義務づけの件
 2023年06月01日 ガイラルディア転生2開発情報
より最新のブログ
より以前のブログ
ブログTOP Mocoゲーム 今日は何の日
最新エントリー

2024年06月16日NPB投高打低の続き
2024年06月14日前イカロールは得意
2024年06月13日「アプリペイ」とか出てきたけど…
2024年06月12日X、「いいね」を非公開化
2024年06月11日投高打低 ゲームなら不具合としてバランス調整するかも
2024年06月10日クマサン印のローラーでストレス発散
より以前のブログ

コンテンツ分類

 AI(人工知能)の話 (34)
 YouTuberと動画サイト (72)
 いろいろ (363)
 いろいろレビュー (26)
 アプリの事 (361)
 アプリストアの話 (265)
 アプリ公開情報 (365)
 アプリ更新/修正情報 (235)
 クイズいろいろ (40)
 ゲーム全般 (656)
 スプラトゥーン (193)
 スポーツの話 (197)
 スマートフォンの話 (554)
 タブレットの話 (96)
 テレビの話 (25)
 ネットの話 (86)
 パソコンの話 (88)
 フォームへの返答 (39)
 プログラミングの話 (89)
 ページの事 (134)
 ページ更新情報 (171)
 ポケモンGO(位置ゲー) (113)
 メルマガの事 (20)
 家電の話 (44)
 開発情報 (335)
 技術的な話 (91)
 携帯の話 (646)
 時事的な話題 (139)
 将棋の話 (33)
 独り言 (83)

カレンダー

     2024年06月     
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
ブログカレンダー


Follow @MocoGames
ツイッターフォローお願いします。
(C)Mocoゲーム 2005-