「インライン関数」というものをつい2週間前くらいに初めて知ったので、調べた際のメモをまとめておきたいと思います。
(1) まずはWikipediaを読む
インライン関数(Inline Function)とは、プログラミング言語の構文の一種で、コンパイラに対して特定の関数をインライン展開するよう指示するものである。 つまり、コンパイラに対して、その関数を呼び出している全ての箇所に関数の実体を挿入するよう指示する。
(2) ふむふむ。インライン展開ってなんだ。お。下に書いてある。
意義[編集]
インライン展開は、関数呼び出しにかかるオーバーヘッドを無くす目的で行われる。
(3) オーバーヘッドってなんだ。
コンピュータが何かを行う時に無駄にかかっている負荷って認識でokかな。つまり、その無駄な負荷を減らすためにインライン関数を使う、と。
(4) どういう関数をインライン関数にすれば良いのかな。
Wikipediaのインライン展開の項目に書いてあった。
インライン展開
(5) とりあえず"インライン関数は何か"が分かった!!
まとめ
1. インライン関数とは、構文の一種で、コンパイラに対して、特定の関数をインライン展開するように指示するもの。コンパイラに対して、その関数を呼び出している全ての箇所に関数の実体を挿入するようにする。
2. インライン展開すると何が良いかというと、関数呼び出しに伴うオーバーヘッドを減らせる。その関数が何度も何度も呼ばれるものだと効果的。
(*) おまけ
・kotlinだと、`fun`の前に`inline`を付けると、インライン関数になる。
・全ての箇所に関数を差し込むので、バイナリコードが大きくなる、というデメリットがある。そのため、一概にインライン関数にすれば良いというものではないとのこと。