【プログラミング】【Kotlin】Kotlin Lesson Vol.3 - Kotlinの文法:関数
はじめに
前回は、はじめてのKotlinの文法:変数について学習しました。今回はKotlinの文法:関数ついて説明していきます。以下は前回までの記事です。
第2章:Kotlinの文法
2.1 変数
- 2.1 変数を参照してください。
2.2 関数
2.2.1 関数の宣言
Kotlinでのシンプルな関数は以下のように記述できます。
fun addition(a: Int, b: Int): Int {
return a + b
}
関数の宣言はfunキーワードで始まり、関数名(この場合は)がadditionが続きます。そして関数additionは、Int型の引数aと引数bを取り、aとbの和を計算したInt型の結果を返す関数です。
引数という言葉は厳密には、関数を定義する際に用いられる変数を仮引数(parameters または formal parameters)、関数を呼び出す際に渡す値を実引数(argument または actual parameters)と呼びます。
Kotlinでは、関数は簡略して記述する事ができます。関数の中身が式1つだけなら波括弧は省略できます。
fun addition(a: Int, b: Int): Int = a + b
もし戻り値の型が推論可能ならさらに戻り値の型も省略できます。
fun addition(a: Int, b: Int) = a + b
波括弧に本体が入る形で関数が記述されていた場合は、その関数は「ブロック本体(block body)を持つ」といいます。もし式を直接返すのであれば「式本体(expression body)を持つ」といいます。
- TIPS
IntelliJ IDEAではブロック本体(block body)と式本体(expression body)を変換する機能が用意されています。使ってみましょう。
今関数additionはブロック本体(block body)を持っていますよね。
関数本体のところにマウスのフォーカスを充てると豆電球マークが出ます。
豆電球をクリックすると、「式の本体に変換する」というメニューが現れるのでクリック(または「Alt」+「Enter」キーでも同じことができます)すると、
式本体を持つ関数に変換できました。
さらに戻り値の型が推論可能ならそれすらも省略できます。
どうでしょう。他の言語を学習した方なら、最初は慣れないので読みづらいと感じるかもしれません。これも慣れです。慣れてくると他の言語での記述方法が冗長のように感じてくるものです。
2.2.2 演習
苗字と名前という仮引数をとる関数を用いて、苗字と名前を連結した文字列を返却する式本体を持つ関数を作成してください。
※文字列の連携方法はまだ学習していないですが、ググってプログラムを作成してくださいね。今から調べる癖を身に付けていきましょう。
おわりに
どうですか、統合開発環境って便利ですよね。これが野球でいうバットやグローブの使い方が上手くなるという意味です。オンラインツールでいくらコードを書いても、それはバットやグローブの使い方が上手くなるわけではありませんよね。プロマリでは実開発で使われるTIPSやツールをできるだけ、使ってプログラムレッスンをしています。即現場で通用するエンジニアを育てるのがプロマリスタイルです。
次回は、Kotlinにおける基本型について説明したいと思います。
プロマリはあなたのエンジニアデビューをサポートします。
written by たみと@promari
プログラミングとのご縁結びならプロマリへ。
オンラインプログラミング学習スクールのプロマリは、プログラミングの初学者の皆様を応援しています。プログラミング講師と一緒に面白いアプリを作りませんか。
The programming school "Promari" will help you learn programming. "Promari" is supporting the first scholars of programming. Let's develop an application with our programming instructor.
Thanks for using eSteem!
Your post has been voted as a part of eSteem encouragement program. Keep up the good work! Install Android, iOS Mobile app or Windows, Mac, Linux Surfer app, if you haven't already!
Learn more: https://esteem.app
Join our discord: https://discord.gg/8eHupPq