関数
関数定義の構文は以下の通りだ。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の関数の基本が理解できた。次に変数を学習していく。