코틀린 공부 day1
선언
val : immutable; 상수의 값
var : mutable; 변수의 값
코틀린은 특이한 점이 변수의 선언과 같이 정의(초기화)해주어야 한다. 안하면 컴파일X
lateinit var : 변경 가능한 변수, 초기화는 런타임으로 미룸
자료형(null)
변수가 null인거에 접근하면 null예외처리를 해주어야한다. 코틀린은 변수가 null이 될수 있는지 아닌지를 명시하기 위해 ?사용
var a: String = "선호" //null이 될 수 없는 a라는 변수이다.
var b: String? = "재원"
b=null //b라는 변수는 null이 될 수 있는 변수이기에 오류가 안난다.
var l = b.length // 오류 뜸 왜? b라는 변수는 null이 될 수 있기에
var k= b?.length // b가 null이 아니면 length의 값을 k에 넣고 null이면 무시
chain 작용하며 사용 가능하다. 예를 들어, b는 재원이는 사람일수있고 그 사람은 안경쓸수 있다. 그 안경의 이름을 가져오도록 하려면?
b?.person?.glasses?.name
Elvis Operator
val l:Int = if (b!=null) b.length else -1
if문을 사용하는 대신 앨비스 연산자인 ?: 을 이용하여 쓸수 있다.
왼쪽의 객체가 null이 아니라면 그값을 리턴하고 null 이면 뒤에값 리턴
val l = b?.length ?: -1
엘비스 예제
fun foo(node: Node): String?{
val parnet = node.getParent() ?: return null //node.getParent가 null이면 리턴 null
val name = node.getName() ?: throw Exception // null이면 에러발생
리스트
코틀린은 리스트에서도 변경가능한지를 중요시함
리스트에 쓰기(추가, 제거) 가능하면 변경가능리스트!!
Collection에서도 MutableCollection<T>와 Collection<T>로나눔.
그냥 Collection은 변경불가! mutable만 가능
val AList: List<int> =listof(1,2,3) // 불변형식임
AList.add(4) //컴파일에러
val BList: MutableList<Int> = mutableListOf(1,2,3) //변경가능
BList.add(4)
print(BList) //=>[1,2,3,4]
Map
key-value형식. 마찬가지로 mutable형식과 아닌형식이 있음
val nummap=mutableMapOf("one" to 1, "two" to 2)
nummap.put("three", 3)
nummap["one"]=11
println(nummap) // =>{one=11,two=2,three=3}
Author And Source
이 문제에 관하여(코틀린 공부 day1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sunh803/코틀린-공부-day1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)