<< 변수의 선언 >>
코틀린의 경우 변수는 val 이나 var 키워드를 이용하여 명시적으로 선언한다.
<<형식>>
val 변수명 : 타입 = 값
var 변수명 : 타입 = 값
val 과 var 의 차이
val 은 Assign-once 변수로 선언하여 한번 초기화하면 더이상 변경할 수 없다.
var 은 Mutable 변수로 선언하여, 언제든지 값을 변경 할 수 있다.
class MainActivity : AppCompatActivity() {
val data1 : Int = 10
val data2 = 20
var data3 = 30
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
data2 = 40 // 에러 : 이유 val 로 선언된 변수는 값을 바꿀수 없기 때문이다 .
data3 = 40 // 성공
}
}
data2 data3 에 대입한 초기 값이 정수 이므로 타입을 명시 하지 않아도, 자동으로 Int 타입으로 선언됩니다.
코틀린은 타입 추론을 합니다.
<< 변수의 초기화 >>
코틀린의 경우 변수는 자동으로 초기화 되지 않으므로 코드에서 직접 초기화 해야하고, 초기화 한 이후에 이용이 가능하다 .
<<null 안전성 ( null Safety ) >>
코틀린에서 null 값을 대입하려면 명시적으로 null 이 될수 있는 변수로 선언을 해주어야 한다.
? 기호를 이용하여 명시적으로 null 이 될 수 있는 변수로 선언한다.
val data1 : String = null // 에러
val data2 : String? = null // 성공
var data3 : String? = null // 성공
----------------------------------------------------------------------------------------------------------------------------------
<< 함수의 선언 >>
<<형식>>
fun 함수명 ( 매개변수명 : 타입 ) : 반환타입 { }
fun sum (a:Int, b:Int):Int{
return a+b
}
<< 호출 >>
// 덧셈버튼
sumBtn.setOnClickListener{
// 값 1과 값 2
var a : Int = sumVal1.text.toString().toInt()
var b : Int = sumVal2.text.toString().toInt()
// 결과
sumResult.text=sum(a,b).toString()
Toast.makeText(this,"덧셈 결과",Toast.LENGTH_SHORT);
}
----------------------------------------------------------------------------------------------------------------------------------
<<클래스와 프로퍼티 >>
자바에서 property란, 멤버변수와 이 멤버변수의 getter, setter를 의미합니다. (꼭 정확하지는 않습니다)
코틀린에서는 이런게 분리되어 있는 property를 간단하게 표시할 수 있도록 하는 요소를 가지고 있습니다.
즉 멤버 변수를 선언하면, 그에 따른 getter, setter는 컴파일러가 자동으로 생성해 줍니다.
class Person(
val name: String //불변이므로 읽기전용이며, 컴파일러가 getter만 생성한다.
var isMarried: Boolean // 읽고 쓰기가 가능한 var type 변수 이므로 컴파일러가 자동으로 getter / setter를 만들어 낸다.
)
fun main(args: Array<String>) {
val person = Person("Bob", true) println(person.name) // 실제로는 getter가 불린다.
println(person.isMarried) //실제로는 getter가 불린다.
}
출처: https://tourspace.tistory.com/64 [투덜이의 리얼 블로그]
----------------------------------------------------------------------------------------------------------------------------------
<<반복문>>
// 1~ 100 까지
for (i in 1..100) {
print(fizzBuzz(i))
}
// 100 부터 1까지 2개 간격으로 (-2씩 차감되면서 반복)
for (i in 100 downTo 1 step 2) {
print(fizzBuzz(i))
}
for (x in 1..size-1) {
//..
}
for (x in 1 until size) {
//..
}
참고 블로그 :
tourspace.tistory.com/category/%EA%B0%9C%EB%B0%9C%EC%9D%B4%EC%95%BC%EA%B8%B0/Kotlin
developer.android.com/courses/kotlin-bootcamp/overview
'Kotlin' 카테고리의 다른 글
코틀린 AsyncTask를 이용한 okHttp 통신 (0) | 2018.10.12 |
---|---|
코틀린 okHttp 통신하기 (0) | 2018.10.12 |
코틀린 Intent 인텐트 (0) | 2018.09.27 |
코틀린 editText 값가지고 오기 (0) | 2018.09.27 |
코틀린 Toast 토스트 (0) | 2018.09.27 |