반응형

안녕하세요~ 에르의 생각발전소입니다 :)

이번 시간에는 옵셔널의 마지막편입니다!

Force Unwrapping

Optional Binding

Implicitly Unwrapped Optional 

위 세가지 중  옵셔널과 임플릭시티 언렙 옵셔널에 대해서 알아보겠습니다:)

지난번 다뤄보았던 코드들 그대로 가지고 계신가요?!

시작해보죠.





if let conratings = ratings {

    

    //  if let conratings = ratings 새로운 상수 선언 대입!

    

    movieInfo += "has \(conratings.count) ratings."

    

    //ratings.count 또한 conratings.count 변경!

}


if let conofficial = officialUrl { // 홈페이지주소가 값이 아니라면,


  movieInfo += "/r/n let's contact our page : \(conofficial)"

    

    // 무비인포에 위의 문장을 더한다. /r/n 한줄 띄움임.

    

}


print("\(movieInfo)")


// 포스언렙핑 말고 다른 방법도 있음!

// Optional binding : if var , if let 으로 옵셔널사용을 최소화하기 위해 변수나 상수를 새로 만드는 것임.


var officialUrl : String! = nil


// 처음에는 nil이지만 나중에 어떻게든 무조건 값을 받을 경우는 implicity unwrapped optional방식을 사용하여

     

     타입뒤에 ! 붙임! 그렇게 되면?!

officialUrl = "www.deathnote.com"


// if let conofficial = officialUrl { // 홈페이지주소가 값이 아니라면,


//  movieInfo += "/r/n let's contact our page : \(conofficial)"

    

    // 무비인포에 위의 문장을 더한다. /r/n 한줄 띄움임.

    

// }


movieInfo += "/r/n let's contact our page : \(officialUrl)"


// 위에 if let conofficial 필요없이 바로 옵셔널이 아닌것 마냥 쉽게 사용이     가능함!


print("\(movieInfo)")


// 포스언렙핑 말고 다른 방법도 있음!

// Optional binding : if var , if let 으로 옵셔널사용을 최소화하기 위해 변수나 상수를 새로 만드는 것임.


// 마지막으로 Implicitly Unwarrped Optional 있음!

// 옵셔널 선언 나중에는 반드시 값을 가지게 값에게 방법을 사용할 있음!

// 보다 효과적임.


// 옵셔널은 스위프트에서 매우 중요한 부분이니, 다시 한번 제대로 되새겨주세요!


반응형
by 발전소장 에르 :) 2016. 5. 7. 21:50
반응형

안녕하세요~ 에르의 생각발전소입니다! :)

이번 시간에는 스위프트의 꽃!

옵셔널을 빼고 스위프트를 안다고 절대 할 수 없죠!?

드디어 이번 시간에는 Optional 에 대해서 알아보겠습니다!


시작해볼게요 :)










// 스위프트의 꽃인, optional


// Nil 값이 없는 무의 상태를 의미함.


// 특히 0 NIL 개념은 다름. 0 정수가 있다는 얘기임.


// Optuonal : 프로그래밍의 안전벨트, 실행 Nil 돠어 프로그램 크래쉬를 일으킬 있는 변수를 특별히 관리한다는 것임


// 스위프트의 장점이자, 단점인데 결론적으론 좋은 장점임!


// 옵셔널을 만드는 방법은 TYPE뒤에 ? 붙이면 .


// EX: NAME:TYPE? = VALUE


let Movie : String = "Death Note"


// 데스노트라는 값은 가진 스트링타입의 무비네임을 가짐 변수임.



var ratings : [Double]? = nil


// 평점을 더블타입으로 nil값을 주어서 선언함.

var ratings : [Double]? = nil


// 평점을 더블타입으로 nil값을 주어서 선언함.


// 허나 포스 언렙핑을 사용했음에도 불구하고 코드가 확실히 죽어버림.

왜냐하면, 값이 결국은 없기 때문임.

고로 이 방법을 사용하면, 빠른 길을 머어어어어얼리 돌아가야하는 결과가 나옴. :(


officialUrl = "www.deathnote.com"


// 일단 홈페이지 주소를 부여함.


var movieInfo: String = "\(Movie)"


// 무비지인포라는 스트링타입의 변수를 선언하고 무비인포는 무비라고 초기화함.


// ratings != nil 에서 ratings는 nil이 아니다! 라는 연산자입니다! (!= NOT)

// 그래서 ratings는 nil값이 아니라고 선언을 했으니!! 문제가 없음!


// /r/n는 한줄 띄움임! 앞으로 자주 사용하실거에요 :)

// officialUrl != nil 이 nil값이 아니라면,

movieInfo에 위 문장을 더한다~!


// 앞에 Optional이 보기 싫고 불완전하게 코딩이 되었으니!


// 짜잔!. officialUrl에 ! 를 붙여서 포스 언렙핑을 시켜서

// 완변히 만들어줍니다 :)

다음 시간에는 ~ ? Optional binding 과 Implicity Wrapped Optional 에 대해서 

다루어보도록하겠습니다!

2016/05/05 - [프로그래밍발전소 ♫] - 160505 Swift 구문편! if, for, switch 까지!


2016/05/05 - [프로그래밍발전소 ♫] - 160505 Swift Collection: Dictionary 와 Set


2016/04/25 - [프로그래밍발전소 ♫] - 160424 collection Array 편 :)


2016/04/23 - [프로그래밍발전소 ♫] - 160423 Swift Tuple, Typealias 편 ! :) 튜플과 타입얼라이어스


2016/04/20 - [프로그래밍발전소 ♫] - 160419 Swift part.2 String과 Numbers에 대해서


2016/04/19 - [프로그래밍발전소 ♫] - 160418 swift 란? 스위프트 언어에 대해서 알아봅시다. let과 var편



반응형
by 발전소장 에르 :) 2016. 5. 7. 03:23
| 1 |