목록콤퓨타 왕기초/Kotlin (25)
파게로그
Kotlin 함수의 종류 ▪ Kotlin Standard Library Function ▪ User-defined functions 함수 정의하기 fun 키워드를 통해 정의한다. fun foo() { // fun foo(): Unit // function body } 위와 같이 아무 값도 반환하지 않는 것은, 사실 return type이 Unit임을 의미한다. 아래와 같이 return type을 지정할 수 있다. fun add(n1: Double, n2: Double): Int { val sumDouble = n1 + n2 val sumInteger = sumDouble.toInt() return sumInteger } 한편 single expression을 반환하면, 다음과 같이 중괄호 없이 =만을 통..
while while문과 do-while문은 Java와 동일하게 사용할 수 있다. iterate through a range Python의 range와 비슷한 점도 있고, 다른 점도 있다. fun main(args: Array) { for (i in 1..10) { println(i) } } ▪ i를 명시적으로 선언하지 않아도 동작한다. ▪ range는 닫힌 구간이다. ▪ 위 프로그램의 실행 결과는 다음과 같다. 1 2 3 4 5 6 7 8 9 10 fun main(args: Array) { for (i in 10..1) { println(i) } } ▪ 위 프로그램의 실행 결과는 다음과 같다(아무것도 출력되지 않는다). fun main(args: Array) { for (i in 5 downTo 1) ..
if Java에서와 같이 if문을 사용할 수 있다. fun main(args: Array) { var score = readLine()!!.toInt() if (score > 90) { println("Great!") } else if (score > 80) { println("Good!") } else { println("Ha-ha!") } } Kotlin에서는 statement가 아니라 expression으로서 if를 사용할 수도 있다. fun main(args: Array) { var score = readLine()!!.toInt() var result = if (score > 90) { "Great!" } else if (score > 80) { "Good!" } else { "Ha-ha!" }..
Output ▪ print(): System.out.print() ▪ println(): System.out.println() ▪ print("$var"): short form of print("${var}") fun main(args: Array) { var score: Int = 80 print("score is $score") } Input Kotlin Playground에서는 readLine()이 콘솔에서 입력을 받지 않았는데, 다른 환경에서 시험하니 정상적으로 입력이 가능했다. 변수에 null이 저장되는 것으로 보아, 설명에 따르면 InputStream이 파일로 연결되어 있다든가 한 것 같다. 이건 차후에 해결해보아야겠다. !!는 unsafe nullable type(T?)을 non-nullab..
Expression 변수와 연산자 등으로 이루어져 단일 값으로 도출된다. 예시 90 + 25 // returns Int value if (a > b) a else b // Java와 달리 if 또한 expression Statement 실행을 위한 완전한 단위를 만드는 모든 것들이다. 예시 val score = 90 + 25 println("Hello, world!") cnt++ max = if (v1 > v2) v1 else v2 Block { } 내부에 포함되는, 0개 이상의 statements의 집합 예시 if (flag == true) { print("true") }
fun main() { val a: Int = 5000 val b: Long = 5000 val c: Long = 5000L println(a) println(b) println(c) } 리터럴은 자동으로 변수의 타입에 맞추어 변환된다. fun main() { val a = 100 val b: Long = a // Error: Type mismatch println(a) println(b) } 하지만 명시된 타입이 자동으로 변환되는 것은 아니다. fun main() { val a = 100 val b: Long = a.toLong() // OK println(a) println(b) } 위와 같이 형 변환 함수를 이용할 수 있다. fun main() { val a: Int = 128 val b: Byte..
Arithmetic Operators +, -, *, /, % 참고로 +의 경우 String의 연결(concatenation)을 위해서도 사용된다. fun main(args : Array) { val hello = "안녕하세요" val hi = "하잉ㅋㅋ" val say = hello + hi println(say) // 안녕하세요하잉ㅋㅋ } 그리고 객체와 같은, user-defined types에 대해서, plus() 함수를 오버로딩하여 + 연산자를 사용할 수 있다. Java와 달리 연산자 오버로딩이 가능하다고 이해할 수 있겠다. 이에 대해서는 Kotlin OOP 포스팅에서 자세히 다룬다. Expression Function name Translates to a + b plus a.plus(b) a -..
Kotlin의 변수 선언 1. 원칙은 선언 시 초기화하는 것으로서, 타입을 반드시 지정해야 하는 것은 아니다. var height = 1.8 var weight = 70 var age: Int = 19 val nationality: String = "Korean" val name = "철수" println(height) println(weight) println(age) println(nationality) println(name) 2. 아래와 같이 선언 후 초기화할 수도 있다. 다만 이 때에는 타입 지정이 필수적이다. fun main(args : Array) { var city: String val population: Int city = "Busan" population = 350 println(ci..