今注目のニュース
微小重力の中で「宇宙セメント」の合成に成功
家族が就寝中に起きた突然の火事。自らの命を犠牲にして一家全員を火事から守った犬(アメリカ)
少女に馬乗りで殴打……中2男子の暴行動画が拡散 「実名さらし」する人々の“目的”

型推論単語

カタスイロン

掲示板をみる(3)
  • twitter
  • facebook
  • はてな
  • LINE

型推論とは、モテるイマドキプログラミング言語の必須アイテムである。

名を伴った変数宣言が許されるのは小学生までだよね~。

簡単な概要

C#での少し極端な例だが、こんな感じに楽できることである。

// C#
// (using System; と using System.Collections.Generic; が書かれているとする)
Dictionary<String, List<DateTime>> myDic = new Dictionary<String, List<DateTime>>()
// ↓こうなる
var myDic = new Dictionary<String, List<DateTime>>()

これに限らず、

var num = 42;
var ratio = 0.25f;
var name = "Name";
var result = isCheckFunction();

のようなところでも、全部varと書けばそれぞれ勝手に適切な記述をしたものとして判断してくれる仕組みである。

最近ではC#3.0(におけるvar)やC++11(におけるauto)で採用されたが、HaskellやMLといった言では初期から備わっていた機である。

概要

整数整数足したら整数に決まってんじゃん」「文字列結合したら文字列できるに決まってんじゃん」「材料見れば結果のは分かるのにintだのstringだのの記述を要するなんてバカなの?死ぬの?」・・・とゆー、プログラマ怠惰に応えて、を周囲のコードから自動的に決定してしまおうというのが型推論である。

一般的に静的型付けプログラミング言語では、変数に全てが付いていて他のオブジェクトは代入できないが、それがために一々修飾が必要でプログラムが煩雑になりがちなのが難点である。型推論が使えると変数を勝手に決めてくれるのでとにかく書くのが楽になるし、動的型付けと違ってコンパイル時に間違いが検出されるという点は型推論を行っても変わらない。また大抵はコード読みやすくなるのもよいところ。

一口に型推論といっても様々である。C#C++のように変数の初期化や返り値などに限定した型推論から、Rustのように変数がどのように使われているかも型推論の材料とするもの、OCamlやHaskellなどのようにプログラム全体からを決定するものまで存在する。

静的型付け関数型言語では伝統的に使われてきたが、最近はその他の言にも導入が進んでおり、動的型付けでもJIT最適化に型推論を用いる事例があるようだ。一番喜んでるのはクソ長いシグネチャがauto一発になったC++屋のような気もする。

関連項目

掲示板

急上昇ワード

最終更新:2019/09/22(日) 14:00

ほめられた記事

最終更新:2019/09/22(日) 14:00

☆オススメの関連コンテンツ

動画

この記事名で動画を検索

静画(イラスト)

この記事名で静画を検索

ニュース

この記事名でニュースを検索

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

       

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

TOP