본문 바로가기

전체 글

(139)
Swift 정리 : 클로저 축약 표현 let add = {(val1: Int, val2: Int) -> Int in return val1 + val2 } var result = add(10, 20) print(result) //30 func math(x: Int, y: Int, cal: (Int, Int) -> Int) -> Int { return cal(x, y) } result = math(x: 10, y: 20, cal: {(val1: Int, val2: Int) -> Int in return val1 + val2 }) //클로저 소스를 매개변수에 직접 작성 print(result) func math(x: Int, y: Int, cal: (Int, Int) -> Int) -> Int { return cal(x, y) } var resu..
Swift 정리 : 클로저 클로저 표현식은 독립적인 코드 블록 익명함수 클로저 표현식은 매개변수를 받거나, 값을 반환하도록 만들 수도 있음 {(: , … ) -> in // 클로저 표현식 코드 } let add = { (x: Int, y: Int) -> Int in return(x+y) } print(type(of:add)) //(Int, Int) -> Int print(add(20,30)) //50 후행클로저(trailing closure) 클로저가 함수의 마지막 argument라면 마지막 매개변수명(cl)을 생략한 후 함수 소괄호 외부에 클로저를 작성 func someFun(cl: () -> Void) { } // trailing closure를 사용 안하면 someFun(cl: { //closure’s body }) // t..
Swift 정리 : 함수 - 1급 객체 함수 : 일급 객체 실습 swift의 함수는 1급 객체이다. 1급 객체(first class object) 또는 1급 시민(first class citizen) 다음 조건을 충족하는 객체를 1급 객체라고 한다. 1) 변수에 저장할 수 있다. 2) 매개변수로 전달할 수 있다. 3) 리턴값으로 사용할 수 있다. func up(num: Int) -> Int { return num + 1 } func down(num: Int) -> Int { return num - 1 } let toUp = up //up함수를 toUp에 저장 - 조건 1)변수에 저장할 수 있다. print(up(num:10)) //11 print(toUp(10)) //11 let toDown = down //down함수를 toDown에 저장 ..
Swift 정리 : guard let func printName(firstName:String, lastName:String?){ guard let lName = lastName else { //guard let에 속한 변수를 블록 밖에서도 사용이 가능하다 print("성이 없네요!") return //early exit } print(lName, firstName) //블록 밖에서 lName 사용 } printName(firstName: "길동", lastName: "홍") //홍 길동 printName(firstName: "길동", lastName: nil) //성이 없네요!
Swift 정리 : Call by reference 구현 inout매개변수 : call by reference 구현 var myValue = 15 func doubleValue (value: inout Int) -> Int { //call by reference하고 싶은 매개변수의 자료형 앞에 inout 씀 value += value return(value) } print(myValue) //15 print(doubleValue(value : &myValue)) //30 //call by reference하고 싶은 변수에 &붙여서 호출 print(myValue) //30
오류 및 내용 정리 플라스타그램 진행을 해다가 오류가 발생했다. 오류 코드는 아래와 같다. sqlalchemy.exc.ArgumentError: relationship 'followed' expects a class or a mapper argument (received: ) followed 에는 클래스 또는 매퍼 인수가 필요하다는 의미라서 followed를 사용하는 User 모델을 확인 해 봤다. 확인을 해 보니 UserModel이 아닌 User로 적혀 있어서 오류가 난 것이었다. UserModel로 수정을 해 주니 정상적으로 작동 되었다. 진행을 하다가 포스팅이 성공적으로 이루어 지는지 확인을 하는데 글씨가 깨져 보이는 현상이 발생했다. . 과제에서는app.config.update(RESTFUL_JSON=dict(ens..
Swift 정리 : 가감 매개변수(variadic parameter) 함수가 가변 매개변수를 받는다는 것을 가리키기 위해서 세 개의 점(…)을 사용 지정되지않은 개수의String값을매개변수로 받아서 콘솔에 출력 func displayStrings(strings: String...) { for string in strings { print(string) } } displayStrings(strings: "일", "이", "삼", "사", "5") //일 이 삼 사 5 displayStrings(strings: "one", "two", "3") //one two 3
Swift 정리 : 함수로부터 여러개의 결과 반환하기 func converter(length: Float) -> (yards: Float, centimeters: Float, meters: Float) { let yards = length * 0.0277778 let centimeters = length * 2.54 let meters = length * 0.0254 return (yards, centimeters, meters) } var lengthTuple = converter(length:100) print(lengthTuple) //(yards: 2.77778, centimeters: 254.0, meters: 2.54) print(lengthTuple.yards) //2.77778 print(lengthTuple.centimeters) //254..