Kotlinで関数を定義する方法について記載します。
目次
関数を定義する方法
1. 関数の定義方法
関数を定義するには fun キーワードを使用します
例えば2つの引数(名字・名前)を受け取り、フルネームを返す関数は次のように定義します。
1 2 3 |
private fun createFullName ( lastName: String, firstName: String ):String{ return "$lastName $firstName"; } |
private
可視性修飾子と呼ばれる部分で、private、protected、internal、public の種類があります。
何も指定しない場合は、public がデフォルト値になります。
fun
関数の宣言キーワード。
createFullName
関数名を定義します。
先頭小文字のキャメルケースで定義します。
( lastName: String, firstName: String )
関数の引数を定義します。
引数名: 型
という順番で定義します。
引数が必要ない場合は、省略可能です。
:String{
戻り値の型を指定します。
戻り値がない場合は、省略できます。
上記をまとめると次の構文になります。
構文( 全ての要素を定義 )
構文( 可視性修飾子は public、パラメータなし、戻り値なし )
実行例( 全ての要素を定義 )
1 2 3 4 5 6 7 8 9 10 11 |
fun main(args: Array<String>) { val fullName = createFullName("山田", "太郎") println( fullName ) // 山田 太郎 } /** * 引数(名字と名前)からフルネームを生成して返す */ private fun createFullName ( lastName: String, firstName: String ):String{ return "$lastName $firstName" } |
構文( 可視性修飾子は public、引数なし、戻り値なし )
1 2 3 4 5 6 7 8 9 10 11 12 |
fun main(args: Array<String>) { printMessage() } /** * 修飾子:public * 引数:なし * 戻り値:なし */ fun printMessage (){ println("メッセージを表示") } |
2. 可視性修飾子
可視性修飾子は、その関数を別の場所(クラスなど)から呼び出し可能か指定するものになります。
private
クラス内からのみ参照可能。
protected
サブクラスからも参照可能。
internal
モジュール内から参照可能。
public( デフォルト値 )
どこからでも参照可能。
3. 引数名を指定して呼び出す
関数を呼び出す際に、引数名を指定して呼び出すと、関数に定義された順番を気にせず呼び出すことができます。
実行例
1 2 3 4 5 6 7 8 9 10 11 |
fun main(args: Array<String>) { val fullName = createFullName( firstName="太郎", lastName="山田" ) println( fullName ) // 山田 太郎 } /** * 引数(名字と名前)からフルネームを生成して返す */ private fun createFullName ( lastName: String, firstName: String ):String{ return "$lastName $firstName" } |
関数の引数は、lastName、firstName の順番で定義されていますが、呼び出し元で引数名を指定して
呼び出すことで、定義とは異なる順序で指定しても、正しく関数を呼び出すことができます。
4. 引数にデフォルト値を指定する方法
引数にデフォルト値を指定する場合は、次のように関数を定義します。
1 2 3 |
private fun createFullName ( lastName: String = "山田", firstName: String = "太郎" ):String{ return "$lastName $firstName" } |
構文( 引数 )
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
fun main(args: Array<String>) { // 引数なしで呼び出す val fullName1 = createFullName() println( fullName1 ) // 山田 太郎 // 引数ありで呼び出す val fullName2 = createFullName( "引数", "あり" ) println( fullName2 ) // 引数 あり } /** * 引数(名字と名前)からフルネームを生成して返す */ private fun createFullName ( lastName: String = "山田", firstName: String = "太郎" ):String{ return "$lastName $firstName" } |