본문 바로가기
반응형

함수5

함수를 어떻게 짜죠? -클린코드 중- 클린코드 책을 읽다 보니 이건 기록을 해 두면 좋겠다는 생각이 들어 옮겨 놓는다. 소프트웨어를 짜는 행위는 여느 글짓기와 비슷하다. 논문이나 기사를 작성할 때는 먼저 생각을 기록한 후 읽기 좋게 다듬는다. 초안은 대개 서투르고 어수선하므로 원하는 대로 읽힐 때까지 말을 다듬고 문장을 고치고 문단을 정리한다. 내가 함수를 짤 때도 마찬가지다. 처음에는 길고 복잡하다. 들여쓰기 단계도 많고 중복된 루프도 많다. 인수 목록도 아주 길다. 이름은 즉흥적이고 코드는 중복된다. 하지만 나는 그 서투른 코드를 빠짐없이 테스트하는 단위 테스트 케이스도 만든다. 그런 다음 나는 코드를 다듬고, 함수를 만들고, 이름을 바꾸고, 중복을 제거한다. 메서드를 줄이고 순서를 바꾼다. 때로는 전체 클래스를 쪼개기도 한다. 이 와중.. 2022. 2. 4.
14. Swift의 다양한 함수들 Swift의 다양한 함수들 Swift의 중첩함수. 스위프트에서는 데이터 타입의 중첩이 자유롭다. 열거형 안에 또 하나의 열거형이 들어갈 수 있고 클래스 안에 또 다른 클래스가 들어 갈 수 있다. 함수의 중첩은 함수 안에 함수를 넣을 수 있다. 일반적인 함수는 모두 전역함수로 모듈 어디서든 사용할 수 있는 함수이다. 함수 안에 함수로 구현된 중첩 함수는 상위 함수의 몸통 블록 내부에서만 함수를 사용할 수 있다. 중첩 함수라고 해서 외부에서 사용할 수 없는 것은 아니다. 함수가 하나의 반환 값으로 사용될 수있으므로(일급 객체라 가능) 중첩 함수를 담은 함수가 중첩 함수를 반환하면 밖에서도 사용할 수 있다. 함수의 아그먼트와 리턴타입을 typealias로 정의를 하고 함수를 할당해주는 방식으로 자바스크립트의 .. 2019. 2. 21.
13. Swift함수의 반환 타입 13. Swift함수의 반환 타입 함수는 특정 연산을 수행한 후 결과값을 반환할 수 도 있고 반환하지 않을 수 도 있다. 만약 반환 값이 없는 함수라면 반환 타입을 '없음'을 의미하는 Void로 표기하거나 아예 반환 타입 표현을 생략해도 된다. 즉, 반환 타입이 Void이거나 생략되어 있다면 반환 값이 없는 없는 함수이다. func byebye() -> Void { //명시적으로 Void를 선언해도 된다. print("say good by~")} Swift에서 함수는 일급 객체이므로 하나의 데이터 타입으로 사용할 수 있다. 각 함수는 매개변수 타입과 반환 타입으로 구성된 하나의 타입으로 사용(정의)할 수 있다는 뜻이다. (매개변수 타입의 나열) -> 반환 타입 func makMyName(name: Str.. 2019. 2. 20.
12. Swift 함수의 매개변수 이름과 전달인자 레이블 Swift 함수의 매개변수 이름과 전달인자 레이블 func makName(first: String, last: String) -> String { return "hi~ my name is \(first) \(last)" } print (makName(first: "min", last: "younghu")) // hi~ my name is min younghu !! 함수를 호출할 때 first와 last라는 매개변수 이름(Parameter name)을 사용할 수 있다. 매개변수 이름과 더불어 전달인자 레이블(Argument Label)을 지정 해줄 수 있다. 보통 함수를 정의할 때 매개변수를 정의하면 매개변수 이름과 전달 인자 레이블을 같은 이름으로 사용할 수 있지만 전달인자 레이블을 별도로 지정하면 함수.. 2019. 2. 19.
UITabBar 숨김처리 와 Swift 클로저 책을 보고 실습을 하다 보니 유용하거나 다시 확인을 해 봐야하는 부분, 실무에서 실제 필요한 부분들은 메모를 하는 차원에서 포스팅으로 기록을 한다. 일부 주요 내용만 정리를 하는 것이다. 추후 다시 바로 찾아 볼 수 있도록. Objective-C로 할 땐 꽤 어려웠던 것 같은데 이게 원래 이리 쉬운 작업이었나? 싶다. override func touchesEnded(_ touches: Set, with event: UIEvent?) { // let tabBar = self.tabBarController?.tabBar; //tabBar?.isHidden = (tabBar?.isHidden == true) ? false : true; UIView.animate(withDuration: TimeInterval.. 2018. 3. 5.
반응형