これは自分が思う普段使いするKotolinのプログラム記述のまとめです。自分がわかることしか重視して書いていないので、間違っている点または理解しにくい記述があると思われます。勉強中なので随時更新していきます。
Rondom()nextInt(指定する数値)
: import java.util.*
をimportする必要あり変数 = if (条件) @@@(trueの時の変数) else @@@(falseの時の変数)
: 条件分岐による代入fun 関数名(引数名: 型 = "default value"){}
list名.filter{条件}
:条件に当てはまるlistの要素を抽出してlistとして返却する。fun 関数名( ::引数関数){引数関数(渡す引数)}
class クラス名(要素1: 型 = デフォルト値, 要素2: 型 = デフォルト値, 要素3: 型 = デフォルト値) {
var 要素1: 型 = 要素1
var 要素2: 型 = 要素2
var 要素3: 型 = 要素3
}
class クラス名(var 要素1: 型 = デフォルト値, var 要素2: 型 = デフォルト値, var 要素3: 型 = デフォルト値) {
init {
}
...
}
引数みたいな部分をプライマリーコンストラクターという
init{}は初期化ブロックという
class クラス名 {
constructor(引数){ //セカンダリコンストラクターという
処理
}
constructor(引数){
処理
}
}
open class クラス名1 { //openをつけることで子クラスがextendsをすることを許可している
constructor(引数1){
処理
}
constructor(引数1, 引数2){
処理
}
}
class クラス名2: クラス名1{
constructor(引数1): super(引数1){
処理
}
constructor(引数1, 引数2) : this(引数1, 引数2){
処理
}
//this()またはsuper()で親クラスのコンストラクターを使用
}
var 変数: 型 get() = 式等 set() = 式等
と書けばいいらしい(未確認)abstract class 親クラス名 (コンストラクターも可){
abstract var 変数名
}
class サブクラス名: 親クラス名() {//サブクラス
override var 変数名
}
interface インターフェース名 {
fun 関数名()
}
class サブクラス名: インターフェース名 {
override fun 関数名
}
object object名 : 参照元{
}
class クラス名: オブジェクトの参照元 by object名 {
}
class クラス名 private() { //コンストラクターをprivate化し呼べなくする
class object {
fun インスタンス化関数() = クラス名()
//ここからインスタンス化させる。またクラス内なのでprivateコンストラクターを呼び出せる
}
}
//インスタンス生成
val インスタンス名 = クラス名.インスタンス化関数()
data class dataclass名 (変数){
}
val 変数 = dataclass名("値")
println(変数, datacass名.変数)
val x = dataclass名(A, B, C)
val (N, M, L) = x
val (X, _, Z) = x// _でスキップ可能
println(N)
println(M)
println(L)
ここまでお疲れさまでした。まだKotlinについては学習中ですのでこのページは今後変更、更新されていきます。また自分が解釈しやすいように書いてあるので事実とは少し違う可能性があることをご了承ください。