분류 전체보기
[코틀린 인 액션] 6장 정리: null 다루는 방법
6.1.3 안전한 호출 연산자 1. 호출하려는 값이 null이 아니면 일반 메서드 호출처럼 작동 2. 호출하려는 값이 null이라면 호출이 무시되고 null이 결과 값 fun main(args: Array) { printAllCaps("abc") printAllCaps(null) } fun printAllCaps(s: String?) { val allCaps: String? = s?.uppercase() println(allCaps) } 2. ?. 연산자를 사용하여 안전한 호출 연쇄 class Address(val streetAddress: String, val city: String, val country: String) class Company(val name: String, val address: ..
[코틀린 인 액션] 5장 정리
5.1.2 람다와 컬렉션 1. 라이브러리 함수를 사용하여 프로퍼티를 비교해 값이 가장 큰 원소 찾기 // 루프 사용 class Person(val name: String, val age: Int) fun main(args: Array) { val people = listOf(Person("Alice", 29), Person("Bob", 31)) findTheOldest(people) } fun findTheOldest(people: List) { var maxAge = 0 var theOldest: Person? = null for (person in people) { if (person.age > maxAge) { maxAge = person.age theOldest = person } } printl..
[코틀린 인 액션] 4장 정리
4.1.4 내부 클래스와 중첩된 클래스 1. 클래스 A 안에 정의된 클래스 A는 중첩 클래스 - 내부 클래스 선언을 위해서는 inner 키워드 사용 class Outer { private val bar: Int = 1 class Nested { fun foo() = 3 } inner class Inner() { fun foo() = bar } } val demo = Outer.Nested().foo() val demo2 = Outer().Inner().foo() 2. Nested 클래스는 Outer 클래스의 내부 클래스가 아니므로 프로퍼티에 접근 불가능 class Outer { private val bar: Int = 1 class Nested { fun foo() = bar // ERROR } inne..
[코틀린 인 액션] 3장 정리
3.4.2 가변 인자 함수 1. 인자의 개수가 정해지지 않은 인자(vararg)로 메서드 호출 시 원하는 개수만큼 값을 인자로 넘겨 사용 가능 fun main(args: Array) { val ls = arrayOf(1,2,3) val ls2 = arrayOf(*ls,4,5,6) printNumbers(*ls2.toIntArray()) } fun printNumbers(vararg numbers: Int) { for (n in numbers) { println(n) } } 2. 스프레드 연산자(*)를 통해 배열을 풀어 각 원소가 인자로 전달되도록 함 fun main(args: Array) { val ls = intArrayOf(1,2,3) printNumbers(*ls) } fun printNumbers..
[Unity3D] 원하는 위치로 물체 이동 MoveTowards
보행자 앞에는 다음과 같이 트리거가 하나 있습니다. 트리거의 tag는 총 GoWalk, Go, Stop 세 가지를 사용합니다. 순서대로 걷기, 뛰기, 멈추기 입니다. 차량이 진입 트리거를 밟기 전까지 보행자 트리거의 tag는 Stop이므로 애니메이션은 Idle상태이고, 이동하지 않습니다. void OnTriggerEnter(Collider other) { if (other.CompareTag("Stop")) { animator.SetBool("IsRun", false); animator.SetBool("IsGreen", false); speed = 0f; } } 차량이 진입 트리거를 밟으면 보행자가 목적지로 이동하기 시작합니다. 진입 트리거의 tag는 SideWalk라고 지정해두었고, 차량에 들어있는 스..
[코틀린 인 액션] 2장 정리
2.1.3 변수 기본적으로 모든 변수를 val 키워드를 사용해 불변 변수로 선언할 것, 나중에 꼭 필요할 때만 var로 변경 초기화 식을 사용하지 않고 변수를 선언하려면 변수 타입을 명시 val answer: Int answer = 42 3. val 참조 객체는 불변일지라도 그 참조가 가르키는 객체의 내부 값은 변경될 수 있음 val languages = arrayListOf("Java") languages.add("Kotlin") 2.2.2 커스텀 접근자 1. 프로퍼티 게터 선언을 통해 클라이언트가 프로퍼티에 접근할 때마다 게터가 프로퍼티 값을 매번 다시 계산 fun main(args: Array) { val rect = Rectangle(3,3) val rect2 = Rectangle(3,5) pri..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc8QmlX%2FbtrRYtP5f81%2FbQVFtT7YENF1PnQRaHh8E0%2Fimg.png)
[우아한테크코스 5기 프리코스] 안드로이드 4주 차 회고록
드디어 마지막 미션입니다. 마지막 미션은 다리 건너기입니다. 요구 사항은 다음과 같습니다. 기능 요구 사항 위아래 둘 중 하나의 칸만 건널 수 있는 다리를 끝까지 건너가는 게임이다. 위아래 두 칸으로 이루어진 다리를 건너야 한다. 다리는 왼쪽에서 오른쪽으로 건너야 한다. 위아래 둘 중 하나의 칸만 건널 수 있다. 다리의 길이를 숫자로 입력받고 생성한다. 다리를 생성할 때 위 칸과 아래 칸 중 건널 수 있는 칸은 0과 1 중 무작위 값을 이용해서 정한다. 위 칸을 건널 수 있는 경우 U, 아래 칸을 건널 수 있는 경우 D값으로 나타낸다. 무작위 값이 0인 경우 아래 칸, 1인 경우 위 칸이 건널 수 있는 칸이 된다. 다리가 생성되면 플레이어가 이동할 칸을 선택한다. 이동할 때 위 칸은 대문자 U, 아래 칸..