반응형

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

이번 시간에는 스위프트와 같은 프로그래밍 언어의 꽃!

함수에 대해서 다뤄보도록하겠습니다!

함수는 일종의 연장(도구)입니다.

못질을 하기위해서는 망치가 필요하겠지요?

그럼 그 망치를 만들어야하는데, 

여기서 망치가 함수가 되는겁니다!

그러므로, 꼭 알아야겠죠?






OPTIONAL 편에서 사용했던 예제를 가져왔습니다 :)

import UIKit


let movie = "Death Note"


// moive라는 상수를 선언하고 값은 "Death Note"를 가집니다.


var ratings:[Double]? = nil


// 처음에는 값이 없고 나중에 추가될 것이기 떄문에. 옵셔널로 지정해줍니다.


let url :String = "www.DeathNote.com"


// 주소는 당연히 있어야겠지요?


// 그리고 타입을 선언해줬습니다! 


ratings = [1.5, 2.5, 3.0 ,5.0, 4.5, 1.0, 3.5, 2.0]


// ratings 8개의 더블값들들을 주었습니다!


var info:String = "\(movie)"


var info:String = movie


// 둘 중 어느 타입으로 주든 상관없습니다 :)

// print 역할을 맡게될 info 변수입니다!


// 이제 함수를 만들어봅시다!


//    func <#name#>(<#parameters#>) -> <#return type#> {

//         <#function body#>

//     }


// 스위프트에서의 함수 틀입니다. parameters에는 매개변수가 들어가고 


// return type에는 함수에 돌려지고 결과값을 표출할 때의 


// 값을 지정해주셔야합니다.


// function body 함수의 내용입니다.


func funcRatings(paraRatings:[Double]) -> (average:Double, min:Double, max:Double){


    //  paraRatings:[Double]이라고 선언했는데, 왜냐하면 ratings


    //  더블값이기 때문입니다. 게다가 어레이상태이죠.


    //  리턴타입은 튜플이며 평균과 최소, 최대값을 구할 것이며, 타입은 더블입니다.

    

    // 왜냐하면 ratings 값들이 더블값이기 때문이지요!


    var sum = 0.0, min = paraRatings[0], max = paraRatings[0]

    

    // sum 0.0 값을 가지며, min,max paraRatings에서의 첫번째값을 가진다. 라고 변수를 생성해주세요.


 

    for value in paraRatings {

        

        // for~in구문을 활용해봅시다!

        

        if min > value {min = value}

        

        // 만약 min 값보다 크다면  value 최소값입니다.

        

        if max < value {max = value}

        

        // 만약 max 값보다 작다면  value 최대값입니다.

        

        sum += value

        

        // sum에는 값들을 차곡차곡더합니다. 총합이니까요!

 

}


 

let average = sum/Double(paraRatings.count)

    

    // 평균값은 총합에서 paraRatings 갯수만큼 나눈 값입니다!

    

    // 여기서 paraRatings.count Double타입이 지정된 이유는?

    

    // 그렇죠, 값들이 더블값이고 따로명시해주지않으면 

    

    // 스위프트 정수로 인지하니 타입을 정확힌 지정해야하는거죠

    

    // 스위프트는 타입과 대소문자에 까칠합니다!

    

    return(average,min,max)

    

    // 반환으로는 average, min, max 반환한다.

    

}

언렙하지않으면 스위프트가 유혹을 합니다.

너 이값이 언렙되지않았는데, ! 나 ? 써서 언렙할레?

그게 더 깔끔할 것 같은데?

ㅋㅋㅋ그래서 !를 붙힘니다!

 

info += " has \(ratings!.count) ratings.\r\n average is \(record.average) from \(record.min) to \(record.max),  \r\n Also our offical website is here \(url) "



print(info)


// 이렇게 갑이 또아앟! 뜹니다 :)

// 그럼 끝이에요.

// 함수를 이용해서 연산을 했고 그 값을 활용해서 위와같은 결론을 얻었습니다 :))))


// 조만간 함수와 옵셔녈 컬렉션들에 대해서 심화편을 업로드하도록 하겠습니다 :)


반응형
by 발전소장 에르 :) 2016. 5. 12. 08:01
반응형

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

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

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
반응형

                             Hello~ 안녕하세요? .

   에르의 생각발전소의 에르입니다~ ! :):




검색 연산자에 대한 구글의 " 공식문서 " 입니다! 


새창으로 공식문서 바로가기


검색 연산자에 대해서 간략 설명이 따라옵니다.


검색연사자 및 기타 구두점을 사용하면 보다 구체적인 검색결과를 얻을 수 있습니다. 

아래의 예를 제외하면 Google 검색에서는 보통 구두점을 무시합니다.


구두점 및 기호


검색 시 아래의 문장 부호가 지원되지만 검색어 문장 부호를 포함한다고 해서 반드시 검색결과가 항상되는 것은 아닙니다.. 구두점을 포함해도 결과가 항상되지 않는다고 판단되는 경우 구두점을 없에고 검색한 제안 결과가 표시될 수 있습니다.




1. +연산자 


나는 내가 원하는 두개 (혹은 그 이상)의 값이 함께 들어간 검색 결과를 보고싶은데..

시는 분들에게 딱! 맞는 연산자이죠!




+연산자의 역활에 맞게 홈플러스와 이마트가 같이 들어가있는 결과를 보여주고 있습니다.



2. @연산자


 나는 A의 소셜태그만 검색하고 싶은데...자꾸 이상한 값들이 따라오네 


일일이 찾을 수도 없고 어떡하지?


하시는 분들에게 필요할 소셜태그 연산자! 



스마트한 소셜링을 위한 @ 연산자를 통해 소셜태그를 검색한 결과입니다 :)


3. 화폐단위 연산자 


 요번에 새로나온 아이폰을 사고싶은데.. 지금 예상이 400파운드니,

 

이걸로 어느 정도될까? 하시는 분들께 유용할 연산자입니다!


화폐단위 연산자와 숫자를 사용하여 아이폰의 가격을 검색결과로 보여주고 있습니다 :)


iPhone se가 0원에 올라와있다니?!




4. 해시태그(#) 연산자 


 요즘 " BLA~ " 에 대한 소식이 궁금하다! 하시는 분들에게 추천드릴 해시태그 연산자 검색입니다!


#연산자 또한 소셜링에 좋은 연산자인데요,


빠릿빠릿하게 최신 주제의 인기 해시태그를 검색하여 보여주고 있습니다 :)



5. 대시(-)연산자 


 동음이의어가 많은 한국어를 위한 완소 연산자!


대시를 이용하여 제외할 키워드를 입력하면 내가 원하고자 하는 결과를 금방금방 찾을 수 있어요 :)


자동자 브랜드 "재규어" 가 아닌 동물 "재규어"에 대해 검색하고자할때 쓰는 방법인데요


위 검색창처럼 한개만이 아니라 여러개의 옵션을 추가 할 수 있습니다 :)


옵션을 추가하면 추가할 수록 정확도 높아지겠죠?


6. 큰따옴표("")연산자 


나는 BLA가 꼭!! 들어간 자료를 찾아야해!!!  라고 하시는 분들께 추천드립니다!


"" 연산자인데요 해당 연산자 사이에 입력된 키워드값이 꼭 포함된 자료만을 결과로 보여줍니다 ㅎ


강력한 놈입니다 !

 


갑자기 뜬금없이 생각난 "아이 배고파"라는 키워드 ㅋㅋ 


제 개인적으로 "" 연산자 거의 항상 사용하고 있는것 같네요.



7. 별표 * 연산자


아..그거 뭐였지? 생각이 안나네.. 하시는 분들꼐 추천드릴 *(별표) 연산자!

생각안나는 키워드를 *로 대체하고 검색하시면 검색엔진이 사용자가 입력한 값과 가장 유사한 자료들을 모아 

보여줍니다! :)

이것도 많이 쓰는데 특히 영어로 검색할 때 효율성이 가장 높다고 하네요 :)


8. 닷닷 .. 연산자


아까 3번 화폐단위 연산자의 진화형입니다 .

사용자가 정하는 범위안의 결과값만을 보여주는데요.

3번 연산자보다는 8번 연산자가 훨씬 효율적입니다 :)



난 아뽕쓰니까 괜찮아... 그럼 그럼 괜찮아...



9. site: 연산자


나는 한 사이트에서만 값을 검색하고 싶어!  하시는 분들은 site: 연산자를 쓰시면 됩니다!


그럼 아래와 같은 검색결과를 얻으 실 수 있습니다 :)

 

페이스북에 마마무 라는 값이 들어간 검색결과만을 보여주는 결과화면.



9. related: 연산자


나는 이 사이트 하나로 만족을 못해 이 사이트 비슷한 다른 사이트도 검색해서 내 지식의 량을 더욱 더 늘리고 싶어!


하시는 분들은 related: 연산자를 사용하시면 됩니다 :)



naver.com값이 포함되거나 유사한 검색결과를 보여주고있는 검색결과.



10. OR 연산자 


아..자료가 없어요 자료가 제길 하나만 걸려라 ! 하시는 분들께 추천하는 OR 연산자 입니다!


내가 입력한 키워드들 중에 하나로 혹은 그 이상값이 포함된 결과를 보여줍니다.


OR도 효율성이 좋아 자주 사용되고 있는 연산자입니다 :)


저는 개인적으로 오토바이가 너무 좋습니다...



11. info: 연산자


나는 이 사이트에 대한 정보가 알고 싶은데? 뭐하는 사이트지? 라고 호기심 빵빵하신 분들께 추천드리는 info: 연산자입니다!


해당 사이트에 대한 정보들을 구글이 제공해 줄 수있는 만큼 제공해줍니다 :)




12. cache: 연산자


구글 로봇이 사이트를 수집하는 과정에서 최근 수집했을 때의 사이트 모습이 구글에 저장되는데


그 페이지 모습을 보여주는 cache: 연산자입니다 ㅎ


딱히 용도는 모르겠으나,실용성은 있어보입니다.



위 연산자를 사용하여 클리앙 사이트를 캐시 구글링한 결과인데...


솔직히 잘모르겠어요



참고하세요! :연산자를 사용하여 검색하실때는 절대~공백이 들어가면 안됩니다! :)


위 연산자를을 섞어써서 검색이 가능하니 연산자를 적극 활용하여 훨씬 스마트한 구글링되세요 :p


p.s 2차 주소를 바꾸고나서 방문자 수가 훅..떨어졌어요...슬픕니다.


그래도~ 굴하지않고~ !


Have A Lovely Day ~ :))))))))


반응형
by 발전소장 에르 :) 2016. 4. 10. 03:40
| 1 |