Kotlin 15

[Kotlin] 함수 기초 (선언, 반환, default value, compact functions)

- 기본 함수선언 틀은 다음과 같다. fun 함수이름(인자): 반환형 { 바디 } - 리턴값이 없는 함수 자바에서 리턴타입이 void 이면 void를 적어주었다면 코틀린은 그냥 : 반환형을 생략하면 된다. fun 함수이름(인자) { 바디 } 이런 함수는 kotlin.Unit 을 반환한다고 생각하면 된다. 코틀린에서 값이 없다는 뜻이다. - main() 함수는 실행의 entry point 이다. command line arguments 가 string 의 배열로 전달된다. fun main(args: Array) { println("Hello World") } 1.3 버전 이후로는 main 함수에 파라미터를 쓰지 않아도 된다. IntelliJ 에서 커맨드라인을 주는 방법은 Run > Edit Configur..

Kotlin 2021.08.03

[Kotlin] 리스트, 배열, 반복문에서 흥미로웠던 부분

코틀린을 간단히만 배우고 안드로이드 개발을 하다가 좀 더 정확하게 기초부터 알고싶어서 codelabs 의 Kotlin Bootcammp for Programmers 와 kotlinlang.org 의 문서를 보고있다. 그러면서 자바와 다르다고 느껴지는 내용을 블로그에 정리하고자 한다. - 배열과 리스트를 초기화하는 여러가지 방법 val numbers = arrayOf(값들) // array 는 mutable 버젼이 없다. 일단 만들면 사이즈는 고정되고 copy제외 원소 추가 삭제가 불가하다. = arrayOfNulls(사이즈) // 이게 자바에서 new 로 배열 만드는 것과 같은 것 같다. = listOf(값들) // 후 수정 불가 = mutableListOf(값들) // 후 수정 가능 = primitiv..

Kotlin 2021.08.03

[Kotlin] 기존 클래스의 확장함수 사용

확장함수란 이미 주어진 클래스에 없는 기능이 필요할 때 해당 클래스의 함수를 직접 만들어서 사용할 수 있는 기능이다. 형식은 다음과 같다. fun 클래스명.함수명(인자): 반환형 {} 굵은 글씨 처리한 부분이 일반적으로 함수선언하는 방법과 다른 부분이다. 예시를 들어보면 어떤 String이 숫자인지 아닌지 알고 싶을 때가 있다고 가정해보자, 그런데 Kotlin의 String클래스에는 정수인지 아닌지 알 수 있는 함수가 없다. 그래서 직접 아래와 같은 코드를 작성할 수 있다. fun String.isNumber(): Boolean { return try { this.toInt() return true } catch (e: NumberFormatException) { return false } }

Kotlin 2021.07.18

[Kotlin] Random

import java.util.* fun main() { // 생성자에 Seed값을 넣어줄 수 있고 넣으면 고정된 숫자가 나온다. // Random생성자에 인자 넣지 않으면 나노타임이 들어가서 같은 값이 나오지 않는다. val random = Random() //숫자 하나 뽑아보기 인자를 n으로 주면 %n한 결과가 나온다. println("${random.nextInt()}") println("${random.nextInt(45)+1}") //중복된 숫자가 들어올 수 있는 방법 for(i in 1..6) { print("${random.nextInt(45)+1} ") } println() //중복을 방지하기 위해 list를 사용해본다. val list = mutableListOf() while(list...

Kotlin 2021.07.16

[Kotlin] 코틀린 입문 - 기본 문법

[Hello Kotlin!] 2016년에 Jet Brains사에서 만든 언어 자바를 보완하기 만들어져서 자바가 동작하는 환경에서는 100% 호환 2017에 안드로이드개발의 공식언어로 지정됨 (구글이 지원하겠다는 의미, sdk나 예시코드를 코틀린으로 하는 등..) Jet Brains에서 만든 IDE가 Inteli-J, Inteli-J를 기반으로 만들어진 Android Studio 에서 사용할 수 있다. [기본 변수 선언] var, val var은 변수, 두번이상 값을 할당 가능 val은 상수, 선언과 동시에만 값을 할당 가능 lateinit 코틀린은 null-safe타입으로 변수 만들면 초기화를 꼭 해줘야한다. val로 선언을 했을 때 초기값이 없으면 초기화가 안돼서 lateinit이라는 개념이 등장한다...

Kotlin 2021.07.16