기록하는 개발자

Kotlin(코틀린)(Intelli J) #1 변수 본문

Kotlin

Kotlin(코틀린)(Intelli J) #1 변수

밍맹030 2020. 1. 18. 20:49
728x90

Kotlin 공부 기록을 시작헌다!

Intelli J를 사용하고 있으며 공부는 독학으로 공식 사이트를 참조하며 영어 공부도 동시에 한다..

 

https://kotlinlang.org/docs/reference/basic-syntax.html

 

Basic Syntax - Kotlin Programming Language

 

kotlinlang.org

 

 

 

우선 Kotlin 에서는 클래스나 함수, 변수 이름을 지정할 때 아래와 같은 방법을 선호한다고 한다.

 

*클래스 이름

-모든 단어 대문자로 시작하는 파스칼 표기법 ex)ClassName

 

*함수나 변수 이름

-첫 단어만 소문자로 시작하는 카멜 표기법 ex)functionName

 

1.type

자바와 동일하게 사용되며 다른 점은 모두 대문자로 시작

ex) Double, Int, Long, Short, Byte, String

 

-변수 이름 variable 뒤에 콜론을 통해 타입을 기입한다. ex) val A: Int=3

-문장 뒤에 세미 콜론은 사용하지 않음

 

#Type Check

-타입 체크는 Any와 is로 이루어진다.

 

any

-자바에서의 object와 같은 역할로 코틀린에서 모든 인스턴스의 최상위 타입이다.

자바의 object의 지원 범위 toString, equals, hasCode, wait, notify
코틀린의 Any의 지원 범위 toString, equals, hasCode

 

is / !is

-자바의 instanceof와 같은 역할로 리턴값은 true, false이다.

1
2
3
4
5
//type checking
fun getStringLength(obj: Any): Int? {
    if (obj is String) return obj.length
    return null
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

 

728x90

2. 변수

 

-변수는 두 가지 방법으로 선언 한다.

1)var ->값 초기화 가능        ex)var b:Int=5

2)val ->값 초기화 불가능      ex)val v:Int=5

 

#변수의 원형

Var <propertyName(변수명)>[: <PropertyType(변수 타입)] [= <property_initializer(초기값)>]

[<getter>]

[<setter>]

*val : getter만 가능(값 초기화가 불가능하므로 setter 사용 불가능)

*var : getter, setter 모두 가능

 

-PropertyType(변수 타입)생략 시 property_initializer(초기값)이 정확히 선언되어야 함

-property_initializer(초기값) 생략(null)시 PropertyType(변수 타입)이 정확히 선언되어야 함

 

#변수는 선언 위치에 따라 두가지 이름으로 불림(이건 나중에 자세히)

1)클래스에 선언된 경우 : Property(속성)

2)이 외의 Scope 내에 선언된 변수 : Local Variable(지역 변수)

Java Kotlin
모든 변수가 null 값을 가질 수 있음

모든 변수는 null 허용x

허용을 위해서는 물음표를 추가해야함

String s="a";

s=null;

var s : String ?="a"

s=null

1
2
3
4
5
6
7
8
9
10
11
12
13
14
fun parseInt(str: String): Int? {
        //...
    }//for using '?', return value can be Int type or null
 
    fun printProduct(arg1: String, arg2: String) {
        val x = parseInt(arg1)
        val y = parseInt(arg2)
 
        if (x != null && y != null) println(x * y)
        else println("'$arg1' or '$arg2' is not a number")
 
    }//function which return nullable value(means no return value)
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

<Type 생략 가능>

Val variable: Double=123.5을 val variable=123.5 이라고 할 수 있음

단, val a=null 인 경우

Nothing/Void를 사용하여 아래와 같이 타입이 없음을 명시

---------------------------------

val variable: Nothing? = null

Void variable=null;

----------------------------------

 

-Nothing이나 Void 를 사용하면 null이라 지정은 가능하지만

기본 타입으로 형변환을 할 수 없기 때문에

위처럼 타입없이 null로 지정된 variable 변수는 메모리만 차지하고 있는 쓸모 없는 변수

1
2
3
4
5
6
7
8
9
10
fun main() {
    var a:Int=1 //mutable integer type variable a
    var b:Char='c' //mutable character type variable b
    
    val v:Int=5 //val means immutable variable
    
    val c=2 //set c with immutable value + automatical type setting
    val d=23.5 //same with above
    val e="String" //same with above
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

 


 

 

728x90