코틀린-안드로이드

2일차)코틀린 문법-2

songyooho 2024. 4. 4. 17:48

함수

1. 선언 :  fun 함수명(매개변수명: 타입): 반환타입 {...}

1)반환타입 생략시 자동으로  Unit설정

2)매개변수는 자동 val 설정

3)매개변수 기본값 설정: 매개변수명: 타입 = 기본값 형식으로 두면 인자전달 안 할시 기본값으로 받음

4)명명된 매개변수: 호출시 매개변수명 지정시 순서 바뀌어도 됨: ex)some(data2=10,data1=20)

 

컬렉션 타입: Array, List,Set,Map

 

1. Array

1)생성

<1>기본: val data: Array<데이터타입>=Array(n,{a}): n개의 a로 구성된 배열 생성

<2>기초타입: val data: 데이터타입Array = 데이터타입Array(n,{a})

<3>arrayOf(): val data=arrayOf(데이터들)

=>arrayOf()는 다양한 타입의 데이터들로 구성되게 만들 수있음.

=>arrayOfNulls<데이터타입>(원소개수)로 널배열 생성가능

=>emptyArray()로 빈 배열 생

 

2)읽기: 배열.contentToString()으로 한번에 읽기가능

 

3)접근:

1)가져오기:get(원소위치), data[원소위치]

2)수정:set(원소위치,바꿀값), data[원소위치]=바꿀

3)크기: size

 

2. List, Set, Map

1)List: 순서 존재, 중복허용

=>listOf()

2)Set: 순서 존재X, 중복 불허용

=>setOf()

3)Map: 키,값으로 이루어진 데이터집합, 키중복 불허용

=>mapOf()

=>map의 원소는 Pair(키,값) 이나, 키 to 값 으로 쓴다.

4)mutable:앞에 Mutable을 붙여사용

<1>Mutable:가변, add(),set(),get(),size()사용가능

<2>일반: 불변, get,size만 사용가능

 

조건문과 반복문

 

1. if ~ else / if ~ else if ~ else

=>표현식으로 사용가능: val result = if ~ else 

=>이때 마지막줄에 쓰인 값이 해당됨.

 

2.when

1)형식: when(변수){ case1 -> 표현식 ... else -> 표현식}

=>when{(변수포함 표현식) ->표현식 ~ else ->표현식}: 변수를 케이스 부분에 넣어사용가

2)case부분에 사용가능한 형식: 

<1>is 데이터타입: 해당 데이터인지 여부

=>단, 다른 데이터 타입을 확인하려는경우(ex)정수를 is String)에러가 나므로 변수 타입을 Any로 명시해 줘야 한다.

<2>20, 30: 여러값에 대한 경우

<3> in 1..10: 이상 이하로 범위 나타낼 경우

<4> >, <, >=, <=, ==:이건 데이터 명시 x일시 사용

=>when{~} 형태일시

<4>!표현식: 표현식을 제외한 범위

 

3)표현식으로 사용: val result = when(){}: ->뒷부분에 나오는 게 들어가는 데이터

 

3.for

1)형식:for(i in 표현식){}

2)표현식

<1>i in 1..10: 1이상 10이하까지

<2>i in 1 until 10: 1이상 10 미만까지

<3>i in 1..10 step 2:1이상 10이하까지 2씩 증가

<4>i in 10 downTo 1:10에서 1까지

3)컬렉션 사용시

<1>i in collection.indices: 컬렉션의 데이터 개수만큼 돌아감. 이때 i는 컬렉션의 인덱스(즉 0,1,2,3,....)

<2>(index, value) in data.withIndex(): 인덱스와 값을 각각 꺼내오며 돌아감

 

4.while(조건문){...}