# 버튼을 클릭했을 시 Toast 메시지 띄우기
화면에 잠깐 나타났다가 없어지는 text를 띄우는 코드는
Toast.makeText(applicationContext,"입력할text",Toast.LENGTH_LONG).show() 이렇게 사용한다
만약 메시지를 짧게 띄우고 싶으면 LENGTH_LONG 부문을 LENGTH_SHORT으로 바꿔준다
※코틀린에서는 ";"를 끝에 안 붙여도 실행이 가능하다
button.setOnClickListener {
Toast.makeText(applicationContext,"입력할 text",Toast.LENGTH_LONG).show() //메시지를 길게
Toast.makeText(applicationContext,"입력할 text",Toast.LENGTH_SHORT).show() // 메시지를 짧게
}
# kotlin의 변수 선언 방식(자바와 비교)
코틀린 변수 선언 방식은 var과 val이 있다 val은 var과 다르게 읽기 전용 변수이다(한 번 값을 넣으면 빼는 것만 가능함)
var<변수이름>:<자료형>=<초기값> , val<변수이름>:<자료형>=<초기값>
<예제>
var name:String="홍길동"
val name:String="홍길동"
자바의 경우 int count = 0;이지만 코틀린은 var count:Int = 0 이런 식으로 자료형을 명시하는 방식이 다르고
코틀린은 선언과 동시에 초깃값을 넣어주면 자료형을 명시하지 않아도 된다 왜나하면 타입 추론이란 걸 하기 때문에 자동으로 들어가기 때문에
var name = "홍길동" 이런 식으로 자료형을 명시하지 않아도 된다
변수의 초깃값을 주지 않았을 때는 var name:String 이런 식으로 자료형만 명시해 줘도 된다.
코틀린의 경우 전역변수로 변수를 선언할 때는 초깃값을 정해줘야 한다 var name:String="" 이런 식으로 해줘야 오류가 안 난다
※ lateinit 이란 걸 var 앞에 붙여 주게 되면 초깃값을 안정해 줘도 된다. 하지만 나중에 값을 넣어주지 않으면 문제가 생긴다
하지만 여기서 var [변수명]:Any를 붙여 주게 되면 어떤 것이나 다 들어갈 수 있다 (String, Int 등)
class MainActivity : AppCompatActivity() {
var name:String // 이것만 입력하면 오류
var name:String=""//이렇게 해주거나
lateinit var name:String //이렇게 해줘도 오류가 안난다
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var name:Any = "홍길동" //자동으로 String 으로 인식
var name:Any = 123 //자동으로 Int 로 인식
var name //이것만 입력하면 오류가 됨
var name:String //이런식으로 입력을 해줘야 오류가 안뜸
name = "홍길동" //바로위에서 선언을 해줬기 때문에 바로 name만 써줘도 된다
var name = "홍길동" //초기값을 지정해줬기 때문에 자료형을 명시 하지 않아도 됨(자동으로 String로 인식)
var name:String="홍길동"
val name:String="홍길동"//읽기 전용 변수(상수)
String name = "홍길동"; //자바의 경우
}
}
# kotlin의 문자 출력
자바에서는 출력문을 System.out.println("안녕");을 입력을 해줘야 하는데 코틀린에서는 println("안녕")만 적어줘도 문자가 출력이 된다 엄청 편리한 거 같다
Logcat이라는 창에 출력이 된다
그리고 출력문 안에서 변수랑 같이 출력을 하고 싶을때는 println("안녕 $변수명") 이렇게 입력을 해줘도 가능하고 println("안녕 ${표현식}") 이렇게 입력을 해줘도 가능하다.
System.out.println("안녕"); //일반적인 자바 출력
println("안녕") //코틀린의 출력문
println("안녕 $name") //이런식으로도 가능하다
println("안녕 ${name + name2}") //이런것도 가능
# 널 허용 자료형(Nullable Type) 이해하기
변수 상자를 만들었는데 값이 들어있지 않은 경우 null이라고 한다. 이경우 null인 경우에 접근하면 프로그램에 오류가 발생한다
이러한 문제를 줄이기 위해 변수에 null을 직접 할당하지 못하게 하고 널 허용 자료형을 만들도록 했다.
널 허용 자료형을 만들라면 변수 선언할 때 자료형 뒤에 ? 기호를 붙이면 그 자료형에 대한 널 허용 자료형이 된다 이걸 래핑이라고 한다
<예제> var name:String? 이런식으로 ?을 붙여준다
널 허용 자료형을 원래의 자료형으로 바꾸기 위해서는 변수명 뒤에 !!만 붙여주면 언래핑이 된다
<예제> name!! 이런식으로 !!을 붙여준다
또한 엘비스 연산자를 이용해 null 경우 디폴트 값을 넣어줄 수 있다.
※ 엘비스 연산자란 : "?:"식으로 표현되며 코틀린은 null 대신 사용할 디폴트 값을 지정할 때 편리하게 사용할 수 있는 연산자를 제공합니다
var name:String? = null //이런식으로 하면 null자료형이 만들어진다
var nameLength = name!!.length //!!을 쓰면 언래핑을 하는데 만약 name이 null이라면 오류가 난다
var nameLength = name?.length //오류가 날때는 ?를 붙여준다
var nameLength = name?.length ?: 0 //또한 엘비스연산자인"?:" 0 를 붙여주면 name이란 변수가 null이면 0을 넣어주라는 의미
# 형 변환하기!
문자열을 숫자로 바꾸는 법 <문자열 변수>.toInt() 이렇게 하면 문자열 변수를 숫자로 변환이 된다
반대로 숫자를 문자열로 바꾸는 법은 <숫자 변수>.toString() 이렇게 하면 숫자 변수를 문자열 변수로 변환이 가능하다
var temp:Int
var temp2:String
var Str:String="10" //문자열변수 "10"이 들어있는 str변수 생성
var int:Int=10 //숫자변수 10이 들어있는 int변수 생성
temp=Str.toInt() //temp에는 숫자로된 10이 들어간다
temp2=int.toString() //temp2에는 문자로된 "10"이 들어간다'Kotlin 공부 노트' 카테고리의 다른 글
| 코틀린의 접근 제한자(Kotlin's Visibility Modifier) (0) | 2022.02.06 |
|---|---|
| 코틀린의 문법 (let, with, run, apply, also) (0) | 2022.01.02 |
| 리사이클러뷰(RecyclerView)만들어보기 (2) | 2021.12.24 |
| 코틀린의 배열/리스트 (1) | 2021.12.15 |
| 코틀린의 기본 문법 2(함수,람다,When,생성자) (0) | 2021.12.15 |