Kotlin-簡単な基本文法


Kotlinの基本文法


kotlin言語Webサイト:https://kotlinlang.org/

デフォルトのデフォルト-->helloworld



1.kotlinはjavaとは異なり、文法の最後に「;」貼らない.
2.kotlinもjavaのようにmain関数から始まります.

print()とprintln()


print()-->直接出力



println()-->出力後に1行スキップ



関数宣言


         --> 두 식은 동일한 의미를 가진다.
1.関数宣言にfun(関数の意味)を付ける
2.戻りタイプがvoidの場合は、-->を省略できます(上の主関数のように)
3.kotlin言語では、式だけでなく、式で関数を記述することもできます.------------------------------------------->(重要特性)

[構文を作成]


fun関数名(パラメータ名:パラメータタイプ、パラメータ名:パラメータタイプ、......):戻りタイプ{関数の内容}

[式を作成]


fun関数名(パラメータ名:パラメータタイプ、パラメータ名:パラメータタイプ、...)=関数の戻り値

式の作成例1)


      --> 이런식으로 다양하게 사용 가능
      

変数、定数宣言



1.val定数の宣言は変更できません-->値
2.varは変数の宣言を変更できます-->値
3.aのように基本声明であることを宣言する
val変数名:変数タイプ=値
4.kotlinはタイプ推論が可能であるため、b、cのようにタイプ宣言なしでもよい
val変数名=値
5.kotlinはdのように宣言することができる.
val変数名:変数タイプ
6.kotlinにはnull Safeという機能があるので、dのみを宣言し、初期化しないとエラーが発生します.
-->null safe:javaはタイプのみを宣言し、初期化タイプがない場合はnullを変数に自動的に挿入します.
kotlinのnull safe機能はnullへの安全な参照を確保するためにnullを含めることができるタイプを特別に定義しています.
-->(Not-nullタイプとNullableタイプ)
したがって、dをStringタイプとして指定した後に初期化しないとエラーメッセージが表示されます.
7.この変数をNullableにするには、eのように宣言します.
val変数名:String?
       -->  null이 할당될 수 있도록 ( Nullable하도록 ) 선언되었다.
          

変数のタイプ+(文字タイプの演算+booleanタイプ)



-->kotlinはタイプ推論の機能を有する.

類型推論


たとえば、)
val a = 20
の場合、aはタイプを宣言していないが、タイプ推論機能によればintタイプである可能性があり、その後aはintタイプとされる.
--> 만약에 a가 int가 아니라 Long타입으로 추론되기를 원한다면, 위의 그림처럼 값 뒤에 L을 붙여주면 된다. 
vala=20->Intと推定
valb=20 L->longと推定
valc=123.4 f-->Floatと推定
vald=123.4->Doubleと推定

文字タイプの演算


-->上図に示すように、文字タイプのプラス記号演算は、物理的に文字を追加するだけです.

Booleanタイプ


-->trueとfalse.
BooleanタイプもNot-Nullタイプです.
従ってnullを割り当てるためには、上図のように
val変数名:Boolean?
変数タイプの後ろにある形式は?変数タイプを宣言するには、「Nullable」を貼り付ける必要があります.

複文


くりかえし文



for(範囲文ピッチの変数){文の内容を繰り返す}
上図に示すように、多種多様な表現が可能です.
(上の範囲文=range)-->だからrangeを使う繰り返し文と呼ばれます
図に示すようにlistを範囲文部分に入れることもできます.

While反復文



-->javaのwhileに似ています
-->do while文も存在する
-->continueキーを使用してWhile文を最初に返します

条件文



-->javaで使用されている既存のif条件式は使用できます.
kotlinはif文を式として提供する(図中の次のコード)
  --> 조건에 따라 변수에 다른 값이 할당되게 만듬
  

When文-->既存のswich文の置き換え



-->xの値は、文の条件に対応するコードをいつ実行するかを決定します.
いつ(条件変数){
条件変数の条件->その条件を満たすときに実行されるコード
条件変数の条件->その条件を満たすときに実行されるコード
条件変数の条件->その条件を満たすときに実行されるコード
......
Els->以上の条件を満たさない場合に実行されるコード
}
-->条件変数の条件については、上図のように多様な構成が可能です.
xがintの場合、
単一値
0->実行文
--> x = 0일경우 실행
              
いくつかの値
0,1,2->実行文
--> x = 0 또는 1 또는 2일 경우 실행
範囲値
in 1..10->実行文
--> x = 1~10사이의 정수일 경우 실행
範囲値の反転
!in 1..10->実行文
--> x = 1~10사이 이외의 정수일 경우 실행    
タイプ条件
is Int->実行文
 --> x가 int타입일 경우 실행
 
 

時文活用追加1


-->以下に示すように、when文はパラメータを必要とせず、条件文だけで使用できます.

-----------

展開関数の使用-->オブジェクトの方法


拡張関数は、以前のメソッドの戻り値に対してメソッドを実行する方法です.
例:
aというクラスがあります.add()、minus()、DD()の3つの方法があります.
各メソッドがそれぞれの役割を果たすと、オブジェクト自体(すなわち、this)が返されます.
aオブジェクトの例
class a{

 a add() {
  
  // add 의 코드
  
 	 return this
  }
 a minus(){
  
  // minus의 코드
  
  	return this
  }
 a DD() {
  
  // DD의 코드
  
  	return this
  }

}
拡張関数としてaクラスを使用する
val abc: a = a()

abc.add().DD().minus()
に示すように、拡張関数として使用できます.
-->上記のコードの意味は次のとおりです.
abcオブジェクトのadd()メソッドを実行します.
戻り値(すなわちadd()を実行するaオブジェクト)を返すDD()メソッドを実行します.
戻り値マイナス記号(DD()を実行するオブジェクト)を返す方法を実行します.
値を折る
///////////////////////////////
これを少し応用すると、
例えば、これらB及びCが存在する場合.
class B{

	val DD = C()

	class C {
    		MethodInC(){
            
           	 // MethodInC의 코드
             
             	}
	}

	C MethodForReturnC(){

		// MethodForReturnC의 코드

		return DD

	}

}

これは、このような方法で使用できることを意味します.
val abc = B()

abc.MethodForReturnC().MethodInC()
すなわちabcオブジェクトのメソッド「メソッドForReturn C」を実行する.
このメソッドが返す値DD(Cクラスのオブジェクト)については、
DDオブジェクトを実行する方法InC()としても使用できます.