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")

댓글 없음:

댓글 쓰기

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

AI 딜레마 1부 - 일자리 종말론 - PD수첩 영상입니다.

  IT분야에서 강의를 하고 있지만 개발자와 강사의 숫자가 앞으로 급격하게 줄어들 것이라는 생각을 많이 하고 있습니다. 코로나블루가 아닌 AI블루가 업계에 충격을 주고 있습니다. ㅠㅠ ​ 영상을 보다 보면 AI의 영향을 받지 않는 분야가 있을까? 하는...