returnに"?"マークあるんですけど????
ブログを見ていたら
returnに"?"が書いてあって、内容が理解できなかったのでメモ
正体は条件演算子
結論として条件演算子というみたいで、
こちらの情報で解決しました。
"?"と":" のセットで使うみたいですね。
組込み演算子 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
具体例
あとから見たときにまたわからなくなりそうなので、 具体例書いておきます。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour { private string a;//string型の変数aを宣言 private bool c;//bool型の変数cを宣言 private string b;//string型の変数bを宣言 void Start() { a = "あ";//変数aに文字列 あ を代入 b=AAA();//関数AAA()を実行し、その返り値を変数bに代入 Debug.Log(b);//コンソールに変数bの文字列を表示 } //返り値の型がstring型の関数AAAを作成 private string AAA() { if (a == "あ") { c = true;//aの文字列が あ だったら変数cをtrueにする } else { c = false;//aの文字列が あ ではなかったら変数cをfalseにする } //cがtrueなら返り値は "変数aには あ が入っています。" になる //cがfalseなら返り値は "変数aには あ は入っていません。" になる return c ? "変数aには あ が入っています。" : "変数aには あ は入っていません。"; } }
このスクリプトを"空のオブジェクト"にセットして
実行すると 関数AAA()の返り値の値は
「"変数aには あ が入っています。"」
が返ってきていることがわかります。
おわりに
return A ? B : C
のBとCには"返り値のある関数"を入れることもできるようです。
私が初めてみたのは関数が入っていたので、大混乱でしたー!!