코틀린 함수 중의 Random 함수는 무작위한 값을 추출하는 함수입니다. 이 함수의 인자로는 Seed 값이 들어가는데, 해당 값을 랜덤으로 만들어 줘야, 무작위 값이 함수를 통해서 도출되게 됩니다. Seed 값은 milisecond 또는 nanosecond 함수를 이용해서 만들어주면, 원하는 랜덤한 숫자가 나올 수 있게 됩니다. Random(100) 처럼, 시드 값을 '100', 이렇게 지정해 버리면, 같은 시드 값이 들어가서 같은 숫자가 나오게 됩니다. 따라서 Random( ) 처럼 사용해야 nanosecond 함수에 의해 같은 값이 거의 나오지 않는 무작위한 숫자가 나오게 됩니다. 아래의 코드를 보고 더욱 자세히 이해해 봅시다. 우선 랜덤 함수에 시드 값을 넣지 않아 무작위한 값이 나오도록 합니다. ..
코틀린은 Null Safety 언어입니다. 한마디로, Null에 대해 안전하다는 의미입니다. Null 과 0은 어떤 차이가 있을까요? 많은 커뮤니티에서 휴지를 통해 이 둘의 차이를 비교하고 있습니다. 0은 휴지를 다 사용하고, 휴지심이 남은 상태를 말합니다. Null은 휴지심도 없는 상태를 말합니다. 즉, 존재하지 않거나 모르는 상태입니다. Null이 안전하지 않은 이유는 NullPointExceptionError를 발생시키기 때문입니다. 코틀린에서는 Null에 대항하기 위해 다음의 문법을 사용합니다. 1. ? -> Null 값이 아닌 경우, 이하 구문을 실행. 2. !! -> Null 값이 아님을 보장. 예를 들어, button?.setOnClickListener로 작성한 경우, 버튼이 널 값이 아니라..
1. lateinit 코틀린에서 변수를 선언할 때, NullSafe한 타입으로 변수를 선언합니다. 이때, 제일 먼저 초기화를 해줘야 하는데, 초기화를 해주지 않는다면, 초기값이 없으므로 널값이 들어갈 수 있습니다. 아래의 예문을 봅니다. //널값으로 선언 시 나중에 계속 ?를 사용하여 널값을 제거해야 하는 불편함. var number: Int? = null //latenit 선언으로 나중에 초기값을 정함. lateinit var lateinitNumber: Int //전역변수로서 lateinit의 초기값 선언. lateinitNumber = 3 //실제 사용시 ?를 붙임. number?.add() //이미 초기화되어 그럴 필요가 없음. lateninitNumber.add() 위처럼 변경이 불가한 var로..
코틀린은 함수형 언어로, 코틀린에서 람다식을 쉽게 이용할 수 있습니다. 람다 표현식은 말그래도 함수를 함수로 전달하고, 그 함수를 실행시키는 역할을 합니다. 아래의 간단한 예문을 살펴봅니다. //자바로 구현시 button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } }) //람다함수 사용시 button.setOnClickListener{ v -> } 특히 버튼에서 클릭 리스너를 사용할 때, 이 리스너를 람다로 전달하는 방법이 많이 사용됩니다. 위의 예문과 같이, 자바로 구현 시에 setOnClickListener를 장착하고, View에는 onClickListener 인터페이스를 구현합..
코틀린의 데이터 클래스에 대해 알아봅니다. 데이터는 말그대로 데이터를 저장하기 위한 목적으로 만든 클래스입니다. 우선 아래 자바로 짜여진 Student 클래스의 예문을 봅니다. class Student { private String name; int studentNumber; public String getName() { return name; } public void setName(String name){ this.name = name; } } Student 클래스에서 getter와 setter를 사용해서 데이터를 저장하고 있는 예시입니다. 일반 자바 코드와는 다르게 코틀린의 데이터 클래스는 copy, hashcode, toString 등이 자동으로 만들어지므로, 위처럼 복잡한 코드 구현이 필요하지 않..
코틀린에서 기본적으로 제공하는 범위 함수에 대해 알아봅니다. 람다식을 사용해서 호출하면, 람다 안에서 일시적으로 범위가 형성됩니다. 이 범위 안에서 람다를 부른 객체 등에 자유롭게 접근이 가능합니다. 범위 함수는 코드를 좀 더 간결하고, 읽기 쉽게 만들어줍니다. 여러 종류의 범위 함수를 확인해 봅시다. 1. Apply 함수 Apply 함수는 객체의 확장 함수이며, 블록 함수를 리시버가 있는 함수 리터럴(Function Literals with Receiver)로 받기 때문에 내부에서는 this를 통해서 객체에 접근할 수 있습니다. 반환 값으로는 이 객체를 다시 반환하게 됩니다. 리시버가 있는 함수 리터럴(Function Literals with Receiver)은 람다에 객체를 축약해서 넘겨주고, 이를 ..
- Total
- Today
- Yesterday
- Bmi Calculator
- 안드로이드 프로젝트
- 안드로이드 어댑터
- 2021년 사건사고
- 안드로이드 스튜디오 에러
- bmi 계산기 만들기
- findViewById
- addView
- 상대적 레이아웃
- 메소드 오버라이딩
- ToDo List 앱 만들기
- 탭레이아웃
- lazy init
- view binding
- 2007년 사건사고
- 자바스크립트 배열
- 안드로이드 앱 만들기
- 선형 레이아웃
- 애드뷰
- 리스트뷰
- notifyDataSetChanged
- 인텐트
- RecyclerView
- 2019년 사건사고
- android adapter
- tabLayout
- 리사이클러뷰
- 미제사건
- 대한민국 미제사건
- 뷰 바인딩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |