« 事前準備 | トップページ | 経験値を手に入れた。Take.2 »

2015年9月 1日 (火)UnrealEngine4のおいしい型

おはようございます、本日のブログ当番新人プログラマーM.Iです。

最近UnrealEngine4をよく触っているのですが、
プログラマーにはなかなかおいしい型がそろっていたりします。

昨今話題になった関数型言語でよく見るOptional型がUnrealEngine4にもありました。
というわけで今日はその紹介をしたいと思います。

まずはOptional型の説明から。
皆さんはエラーが起こったとき関数からどんな値を返しますか?
nullptr 、 0 や -1 などが思い浮かびますが、どれも不具合の原因になりそうです。
あるいはプログラムの開始時に初期値を決めないといけない時もありますよね。
nullptr などを使うとやっぱり不具合の原因になりそうです。

そんな時に使えるのがOptional型です。
値が入っていなかったり、エラーにより値が取得できなかった時を表せる型です。
UnrealEngine4ではTOptionalという名前になっているようです。

UnrealEngine4での使い方はこんな感じです。

#include "Runtime/Core/Public/Misc/Optional.h"
TOptional g_iHoge;
void SetHoge(int iHoge)
{
// 普通の代入と同じように使える
g_iHoge = iHoge;
}

//何か計算を行う
void  Culc()
{
// 何か値が入っているなら
if ( g_iHoge.IsSet() )
{
int iHoge = g_iHoge.GetValue();
}
// 何も値が設定されていないなら
else
{

}
}

こういう風に書くと初期値が簡単に統一できますね。

こういう風に書くと初期値が簡単に統一できますね。
導入もそれほど違和感なくできるのではないでしょうか。
関数内でエラーが起きた場合も

return TOptional();

みたいにすれば空の値、つまりエラー値が返ったという表現ができます。

ただしエラーがあった時にエラー内容を詳細に記述できないという問題点もあります。
他の言語にはエラーを記述するためのEither型というのもありますが、
UnrealEngine4には標準ではないそうです。

皆さんもエンジンソースが公開されているなら
中身を探検すると面白い情報が手に入るかもしれませんね。

follow us in feedly
result = encodeURIComponent( "http://www.accessgames-blog.com/blog/2015/09/unrealengine4-e.html" );document.write( "result = " , result );&media=https%3A%2F%2Ffarm8.staticflickr.com%2F7027%2F6851755809_df5b2051c9_z.jpg&description=Next%20stop%3A%20Pinterest">

| | コメント (0) | トラックバック (0)

« 事前準備 | トップページ | 経験値を手に入れた。Take.2 »

プログラマー」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: UnrealEngine4のおいしい型:

« 事前準備 | トップページ | 経験値を手に入れた。Take.2 »