본문 바로가기
반응형

Swift 문법13

swift guard let 사용하는 경우 swift의 guard let 구문은 특정 조건이 맞으면 계속 진행된됩니다. 아래의 상황에서 쓰이면 적절합니다. 1. 특정한 조건이 맞지 않으면 종료(조기탈출) 2. 추가 로직 작동을 원하지 않을 때 사용 2020. 11. 17.
스위프트 클로저 (swift closures) 알아보기 5 지겨우셨죠? 드디어 클로저 알아보기 마지막 5탄입니다. 이번 시간은 다행하게도 비교적 짧은 내용입니다. 이렇게 5개의 글로 나눠 작성하니 나중에 다시 공부하기도 좋을 것 같네요. hiMessage를 풀어보면 String 매개변수를 받아 String 타입을 리턴하는 일반적인 함수 형태입니다. 그런데 hiMessageClosure 함수를 보면 리턴 타입이 () -> String으로 낯선 형태로 느껴집니다. 간단하게 생각해서 hiMessageClosure의 리턴 타입이 클로저라고 생각하면 쉽습니다. 리턴 부분을 보시면 -> return {"hi " + message}으로 축약된 클로저 표현식 형태임을 알 수 있어요. hieMessageClosure를 실행시켜보면 리턴타입인 클로저 () -> String 가 반.. 2020. 9. 10.
스위프트 클로저 (swift closures) 알아보기 4 안녕하세요 ~ swift 문법을 공부 중입니다. 지난번 시간에 이어서 스위프트 클로저 (swift closures) 알아보기 4탄 이어서 작성해보겠습니다. 혼자 보고 넘어다기보다는 이렇게 글을 남기며 정리하니 공부가 잘 되네요. String 배열과 String 문자열을 인자로 받아 배열의 원소이 첫 문자가 인자로 받은 String 문자열과 같으면 true를 반환, 다르면 false를 실행하는 filterString 함수를 만들어보았습니다. 보통의 함수였습니다. 이번에는 클로저를 매개변수를 갖는 형태로 filterStringClosure 함수를 만들어보았어요. (dataArray: [String], closure: (String) -> Bool)에서 알 수 있듯 String 배열과 String을 매개변수로.. 2020. 9. 10.
swift filter, map, reduce 스위프트 필터,맵,리듀스 이용하기! 스위프트에서 필터(filter), 맵(map), 리듀스(reude) 간단 예를 작성해보겠습니다. 제가 생각한 간단한 정리입니다. filter => 걸러내기 (기존 컨테니어 값에서 추출) map => 변형 (기존 컨테이너 값 변형) reduce => 합치기 (기존 컨테이너 값 합치기) 간단한 사용 예제도 남겨봅니다. var mapTest: [Int] = [1,2,3,4,5] var mapTestReturn = mapTest.map { $0 * 2} print(mapTestReturn) var filterTest: [Int] = [1,2,3,4,5,6,7,8,9,10] var filterTestReturn = filterTest.filter {$0 % 3 == 0} print(filterTestReturn).. 2020. 9. 10.
스위프트 타입 캐스팅 as 업캐스팅(upcasting) as! as? 다운캐스팅(downcasting) as로 upcasting 상속 관계가 있는 클래스들끼리만 타입 캐스팅 가능 스위프트 코드를 작성하다 보면 컴파일러가 특정 타입의 값을 식별할 수 없는 경우가 발생할 수 있음 이것은 애매모하거나 기대하지 않은 타입의 값이 메서드 또는 함수 호출에서 반환될 때 종종 발생 이런 경우에 as 연산자를 이용한 타입 변환(type casting) 자식인스턴스 as 부모클래스 // upcasting 안전한 캐스팅, 자식이 추상화됨 업캐스팅은 특정 클래스의 객체를 상위 클래스의 객체로 형 변환 UIButton은 UIControl의 하위 클래스이므로 다음과 같이 안전하게 형 변환 let myButton : UIButton = UIButton() let mtControl = myButton as UIControl // 자.. 2020. 9. 10.
반응형