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

댓글 없음:

댓글 쓰기

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

제 유튜브 채널에 꾸준하게 영상을 올리고 있습니다. ㅎㅎ 2025년에는 100개 정도의 영상을 올릴 생각입니다.

  2024년에 시작한 것이 유튜브 채널입니다. 주로 파이썬 프로그래밍에 관련된 영상들을 올릴 생각입니다. ㅎㅎ 제가 집필한 책을 기본으로 해서 파이썬의 기본 문법, 라이브러리, 챗GPT와의 연동등을 주로 올리려고 합니다. 현재 20개 정도 영상을 ...