関数
関数定義の構文は以下の通りだ。Javaと微妙に違うが、必要なパーツは同じだ。
MainActivityに関数を追加し動作を確認する。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | package com.example.myapplication import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log class MainActivity : AppCompatActivity() {     override fun onCreate(savedInstanceState: Bundle?) {         super.onCreate(savedInstanceState)         setContentView(R.layout.activity_main)         test()     }     fun test(){         Log.d("MainActivity","test実行")     } } | 
13行~15行目で関数testを定義している。処理内容はログクラスLogを利用しデバック情報”test実行”を出力している。
| 13 14 15 |     fun test(){         Log.d("MainActivity","test実行")     } | 
定義した関数を呼び出しているのが11行目だ。
| 11 |         test() | 
メニューバーのRun->Run ‘app’を選択しプログラムを実行する。
ログの確認方法は画面下部の「LogCat」をクリックし「Debug」を選択する。
関数-引数あり
引数がある関数の動作を確認する。コードを次のように変更する。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | package com.example.myapplication import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log class MainActivity : AppCompatActivity() {     override fun onCreate(savedInstanceState: Bundle?) {         super.onCreate(savedInstanceState)         setContentView(R.layout.activity_main)         test(99,"引数だ")     }     fun test(number:Int,message:String){         Log.d("MainActivity","test実行:"+number+message)     } } | 
Javaとの相違が少ないので特に問題ない。ただ13行目の引数の宣言で「変数名:型」になっていることに違和感がある。この変数に関しては後日学習する予定だ。
| 13 |    fun test(number:Int,message:String){ | 
関数-引数省略
関数呼び出し時に引数を省略することができる。関数定義で引数のデフォルト値を次のように設定する。
| 1 2 3 |      fun test(number:Int=1,message:String="second",number2:Int=2){         Log.d("MainActivity","test実行:"+number+message+number2)     } | 
これにより関数呼び出し時に引数を省略できる。
関数-戻り値あり
次に戻り値がある関数の動作を確認する。コードを次のように変更する。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package com.example.myapplication import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log class MainActivity : AppCompatActivity() {     override fun onCreate(savedInstanceState: Bundle?) {         super.onCreate(savedInstanceState)         setContentView(R.layout.activity_main)         Log.d("MainActivity","結果="+test(99,"引数だ"))     }     fun test(number:Int,message:String):Int{         Log.d("MainActivity","test実行:"+message)         return number + 9     } } | 
こちらもJavaとの相違が少ないので問題ないが、変数と同様に関数の型定義が「関数名():型」となっておりJavaと逆なところに違和感を感じる。
| 13 |     fun test(number:Int,message:String):Int{ | 
Kotlinの関数の基本が理解できた。次に変数を学習していく。

 
  
  
  
  



