글
안녕하세요~ 에르의 생각발전소입니다 :)
이번 시간에는 스위프트와 같은 프로그래밍 언어의 꽃!
함수에 대해서 다뤄보도록하겠습니다!
함수는 일종의 연장(도구)입니다.
못질을 하기위해서는 망치가 필요하겠지요?
그럼 그 망치를 만들어야하는데,
여기서 망치가 함수가 되는겁니다!
그러므로, 꼭 알아야겠죠?
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)
// 이렇게 갑이 또아앟! 뜹니다 :)
// 그럼 끝이에요.
// 함수를 이용해서 연산을 했고 그 값을 활용해서 위와같은 결론을 얻었습니다 :))))
// 조만간 함수와 옵셔녈 컬렉션들에 대해서 심화편을 업로드하도록 하겠습니다 :)
'프로그래밍발전소 ♫' 카테고리의 다른 글
160513 Swift While 구문편 :) (0) | 2016.05.14 |
---|---|
160512 Swift 단순 구문 , 흐름 제어 구문 for , for ~ in구문 :) (0) | 2016.05.13 |
160507 Swift Function 이번엔 프로그래밍의 꽃! 함수편! (0) | 2016.05.08 |
160507 Swift Optional 스위프트의 꽃 옵셔널! 마지막편! (0) | 2016.05.07 |
160506 Swift Optional 스위프트의 꽃! 옵셔널에 대해 알아보자! (0) | 2016.05.07 |
RECENT COMMENT