LucyとRuby

Kotlinプロブラミングメモ

Kotlinを勉強したメモ。自分用。

関数

Kotlinではmain関数が実行される。main関数の内部で他の関数を呼び出して使用する。

fun main(){
  var num:Int = 0 //固定値はval、変数はvarで宣言する また変数名(ここではnum)のあとに「:Int」でと型を明示する(省略も可)
  num = keisan(10, 20) //関数の使い方は他の言語と同様
  println(num) //コマンドの後のセミコロン(;)は基本的には書かない(書いてもOK)
}

//外部関数を記述
fun keisan(a:Int, b:Int):Int{ //戻り値がある場合は()の後に「:戻り値の型」を記述する
  ret:Int = 0
  ret = a + b
  return ret
}

for文

Kotlinではfor文を以下のように記述する。

fun main(){
  for(i in 0 .. 10){  //0から10まで繰り返し(合計11回)処理を行う
    println(i)
  }
}

クラス、インスタンス

クラスは、変数(プロパティ)と関数(メソッド)をまとめたもの。クラスを使用する時に実体化させたものがインスタンス。使用例は下記の通り。

fun main(){
  var data = intArrayOf(60,70,80) //整数の配列を作成
  var ins01 = StudentScore("sato") //インスタンスを作成
  var sum = ins01.calcSum(data) //作成したインスタンスのcalcSumメソッドの値を取得
  var name = ins01.name //作成したインスタンスのプロパティ(.name)の値を取得
  println(name)
  println(sum)
}
class StudentScore(name:String){  //コンストラクタnameを引数で取得する
  var name = name   //プロパティにコンストラクタの値を入れる
  fun calcSum(data:IntArray):Int{  //配列を引数とするメソッド。返り値があるため返り値の型Intを指定していることにも注目
    var sum:Int = 0
    for(i in data){  //このようにforの範囲に配列を参照すると、配列の要素を順に取り出して使用することができる
      sum += i
    }
    return sum
  }
}

インスタンスを関数の引数に使用する

関数の引数にインスタンスを使用することができる。インスタンスのデータ型はクラス名である

fun main(){
  var ins01 = Keisan()  //インスタンスを作成
  useKeisan(ins01) //作成したインスタンスをuseKeisan()関数の引数に入れて実行
}
fun useKeisan(ins:Keisan){ //インスタンスを引数とする外部関数(インスタンスinsのデータ型はクラス名Keisanであることに注目)
  println(ins.a) //インスタンスからプロパティを取り出して表示
  println(ins.b) //インスタンスからプロパティを取り出して表示
  println(ins.calcSum()) //インスタンスからメソッドを実行して表示
}
class Keisan(){ //クラスを定義
  var a = 1 //プロパティ
  var b = 2 //プロパティ
  fun calcSum():Int{ //メソッド(Int型の戻り値あり)
    return(a + b)
  }
}

ランダムな数値の取得方法

ランダムな値を取得するには.random()メソッドを使う

fun main(){
  var rnd:Int = (0 .. 10)random()  //0から10の数字のどれかをランダムで取得
  println(rnd)
}

post no. 1209

Comments