본문 바로가기
Android

kotlin - 변수, 자료형, 함수

by 801lhy 2020. 6. 9.

변수 선언하는 방법

(1)
Variable/Value 변수명 =
var/val 변수명 =

(2) var/val 변수 : 자료형 =

Variable/Value 의 차이

Variable : 원하는것을 마음대로 넣을 수 있음, 변하는 값
Value : 한번 넣으면 바꿀 수 없음, 변하지 않는 값

var num = 10
var hello = "hello"
var point = 3.4
val fix = 20 // 고정

fun main(args:Array<String>){

    // 출력
    println(num)
    println(hello)
    println(point)
    println(fix)

    num = 100
    hello = "Good bye"

    println(num)
    println(hello)
    println(point)
    println(fix)

//    fix = 500 // value cannot be reassigned
}

자료형

* 정수형 -> Long > Int > Short > Byte
* 실수형 -> Double > Float
* 문자 -> Char
* 문자열 -> String
* 논리형(T/F) -> Boolean

var number = 10
var number1: Int = 20
var hello1: String = "hello"
var point1: Double = 3.42

// 자료형을 명시하지 않을 경우 입력된 값을 통해 판단한다.

fun main(array: Array<String>) {
    number = 20
//        number = 20.0
}

변수를 선언할때 NULL을 허용하는 방법

var a = 1+2+3+4+5 // 연산의 결과값을 넣어줄 수 있음
var b = "1"
var c = b.toInt()
var d = b.toFloat()
var e = "young"
var f = "My name is $e Nice to meet you"

//var abc : Int = null // 오류
var abc1 : Int? = null
var abc2 : Double? = null

fun main(array: Array<String>)
{
    println(a);
    println(b);
    println(c);
    println(d);
    println(d);
    println(e);
    println(f);
    println(abc1)
    println(abc2)
}

 


함수 선언

fun 함수명 (변수명: 타입, 변수명:타입...) : 반환형 {
함수내용
return 반환값
}

fun main(array: Array<String>) {
    val answer = plus(3, 5);
    val answer2 = plus(first = 20, second = 30)
    // 명시적으로 선언할수도 있음
    val answer3 = plus(second = 40, first = 50)
    val answer4 = plusFive(20, 30)
    val answer5 = plusFive(20)



    println("=== ANSWER ==============")
    println(answer)
    println(answer2)
    println(answer3)
    println(answer4)
    println(answer5)

    printPlus(11, 22)
    plusMany(1,2,3,4,5,6,7)

    println("==========================")
}

fun plus(first: Int, second: Int): Int {
    val result: Int = first + second
    println("=== FUCTION ==============")
    println("first : " + first)
    println("second " + second)
    println("result : " + result)
    println("==========================")
    return result
}

// 디폴트 값을 가지는 함수 만들기
fun plusFive(first: Int, second: Int = 5): Int {
    val result: Int = first + second
    println("=== DEFAULT ==============")
    println("first : " + first)
    println("second " + second)
    println("result : " + result)
    println("==========================")
    return result
}

// 반환값이 없는 함수 만들기
fun printPlus(first: Int, second: Int): Unit {
    val result: Int = first + second
    println("=== NO RETURN(UNIT) ====== ")
    println("first : " + first)
    println("second " + second)
    println("result : " + result)
    println("==========================")
}

// 함수 축약해서 작성
fun plusShort(first: Int, second: Int) = first + second

// 가변 인자를 갖는 함수 선언
fun plusMany(vararg numbers: Int){
    println("=== Many  =============== ")
    for (number in numbers){
        println("number : " + number)
    }
    println("==========================")
}