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

댓글 없음:

댓글 쓰기

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

걸음걸이가 자연스러운 중국산 로봇 영상

인공지능 분야와 로봇 분야에 중국의 기술력이 상당한 파장을 주고 있습니다. 대단합니다. ㅎㅎ    https://www.youtube.com/watch?v=HvG9RIsWpqI