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
}
댓글 없음:
댓글 쓰기
참고: 블로그의 회원만 댓글을 작성할 수 있습니다.