2016년 6월 30일 목요일

Swift 3.0에서 변경된 사항들입니다. #2

1.   메서드가 어떤 값을 리턴하는 경우라면 명사로 지정된다. 메서드가 어떤 액션을 실행하는 경우라면 동사로 지정된다.
//: Playground - noun: a place where people can play

import UIKit

//기존 스타일
//for i in (1...10).reverse() {
//    print(i)
//}

//Swift 3.0 스타일
for i in (1...10).reversed() {
    print(i)
}

//배열을 내용을 출력하기 위해 사용하던 코드
//var array = [1,5,3,2,4]
//for (index, value) in array.enumerate() {
//    print("\(index + 1) \(value)")
//}

//Swift 3.0에서 변경된 코드
//배열의 현재 인덱스를 포함한 튜플을 리턴하기 때문에 명사로 호출한다.
var array = [1,5,3,2,4]
for (index, value) in array.enumerated() {
    print("\(index + 1) \(value)")
}

//기존 코드
//var array = [1,5,3,2,4]
//let sortedArray = array.sort()
//print(sortedArray)

//swift 3.0 스타일
var array2 = [1,5,3,2,4]
let sortedArray = array2.sorted()
print(sortedArray)

//기존 코드
//var array3 = [1,5,3,2,4]
//array3.sortInPlace()
//print(array3)

//Swift 3.0 스타일
//별도의 액션없이 리턴하지 않고 끝내기에 명사로 변경됨
var array3 = [1,5,3,2,4]
array3.sort()
print(array3)


2.           Swift 3.0에서는 API 대해서 단순함의 철학을 접목시켰다.
XCPlaygroundPage.currentPage PlaygroundPage.current
Button.setTitle(forState) button.setTitle(for)
Button.addTarget(action, forControlEvents) button.addTarget(action, for)
NSBundle.mainBundle() Bundle.main()으로 변경됨
UIColor.redColor() UIColor.red() 변경됨

enumeration 경우도 변경된 부분이 있다. 프로퍼티와 같이 enumeration case 다룹니다. upperCamelCase표기를 사용하지 않고 lowerCamelCase 사용합니다.
예를 들면 .System 대신에 .system
.TouchUpInside 대신에 .touchUpInside
.FillStroke 대신에 .fillStroke
.CGColor 대신에 .cgColor 사용합니다.

3.           @discardableResult 사용한다. 리턴값을 별도로 사용하지 않는 경우 경고 뜨는 것을 없앨 있다.
//리턴값을 별도로 사용하지 않는다면 아래와 같이 선언한다.
@discardableResult
func printMessage(message: String) -> String {
    let outputMessage = "Output : \(message)"
    print(outputMessage)
   
    return outputMessage
}

printMessage(message: "Hello Swift 3.0")

댓글 없음:

댓글 쓰기

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.

Xcode 26기반의 교재를 업데이트하면서 들었던 생각입니다.

  앞으로는 교육이 좀 바뀌어야 할 것 같습니다. ㅎㅎ 저도 대부분의 교육에서 AI기반의 llm을 사용하는 방식을 사용하고 있습니다. 아마 강사님들은 대부분 이렇게 수업을 진행하고 계실 것 같습니다. 개발 환경을 셋팅하는 것을 알려주고, 기본 언어와 ...