검색결과 리스트
정수에 해당되는 글 3건
- 2016.05.12 160512 Swift Function 스위프트 함수편!
- 2016.04.25 160424 collection Array 편 :) 2
- 2016.04.23 160423 Swift Tuple, Typealias 편 ! :) 튜플과 타입얼라이어스 1
안녕하세요~ 에르의 생각발전소입니다 :)
이번 시간에는 스위프트와 같은 프로그래밍 언어의 꽃!
함수에 대해서 다뤄보도록하겠습니다!
함수는 일종의 연장(도구)입니다.
못질을 하기위해서는 망치가 필요하겠지요?
그럼 그 망치를 만들어야하는데,
여기서 망치가 함수가 되는겁니다!
그러므로, 꼭 알아야겠죠?
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 |
안녕하세요~ 에르의 생각발전소입니다 :)
저번 시간에는 tuple과 typealias를 알아보았는데요.
이번 시간에는 collection을 다뤄보도록 하겠습니다.
array는 dictionary, set 등의 친구인데요.
콜렉션 범주안에 속하는 녀석입니다.
자 그럼 본격적으로 시작해볼까요?
var children:Array<String> = ["a", "b", "c", "d", "f" ,"g"]
// children이라는 이름의 스트링 타입을 가진 어레이를 정의하고
// 인스턴스는 a,b,c,d,f,g 입니다. 아이들의 이름이죠?
// 위에 설명했듯이 대괄호가 값을 감싸야하며, 스트링일 경우 큰 따옴표가 따라옵니다.
var age:[Int] = [10,15,20,30,40]
// age라는 이름을 가진 인트타입의 어레이를 만들었으며,
// 10,15,20,30,40 이라는 값을 가지고 있습니다.
// 위와 같이도 어레이를 만들 수 있습니다.
// age 방식이 더 쉽지요?
// 그리고 array로 되있다고해도 let으로 정의된 값은 수정 불가능합니다.
children += ["z"]
// children 어레이에 값을 추가했습니다.
// 역시 대괄호가 필요하고, children은 var이니 수정 가능합니다 .
let maxMemory:Int = 128
// maxMemory라는 인트타입의 상수 클레스를 만들었으며, 값은 128입니다.
// 어레이가 아닙니다.
var presentMemory:Int = 54
// presentMemory는 인트타입이며 갑은 54입니다.
presentMemory += 10
// 어레이가 아니기 때문에 그냥 편하시게 더하시면 됩니다.
let UpgradeMemory1 = 250.5
// UpgradeMemory1 라는 더블값을 가진 클레스를 만들고,
var MemoryBackUp:[Int] = []
// MemoryBackUp 이라는 인트형의 어레이를 만들었고 값은 없습니다.
MemoryBackUp.append(UpgradeMemory1)
// 에러가 났습니다. 왜 에러가 난걸까요..?
MemoryBackUp.append(Int(UpgradeMemory1))
// 왜냐하면 UpgradeMemory의 타입이 더블이기 때문입니다.(형태를 정해주지않으면 자동으로 더블.)
// Int 와 Double은 친구가 못 됩니다.
// 그래서 둘 중 하나의 형태로 통일을 시켜줘야 진행이 가능합니다.
// 스위프트는 타입에 엄격합니다.
// 엄격한만큼 안전성은 올라가며, 개발자와 사용자에게도 여러모로 이득입니다.
// 어레이를 다른 어레이에 할당했을 때 기존 어레이 안에 값이 있으면 복사가 됨.
let copy = MemoryBackUp
// copy라는 어레이를 만들고 이 어레이에 MemoryBackUp이라는 어레이를 할당함.
MemoryBackUp += [128]
// 그리고 MemoryBackUp에 새로운 값을 추가하면?
copy
// copy에 MemoryBackUp에 새로운 값이 추가되기 전의 값이 남아있슴.
// 아무때나 복사가 되는 것은 아니고,
// 어레이의 값이 재초기화되는 순간 복사가 됨.
// 일종의 잔상같은 개념임! :)
var test1:[Int] = [10]
// 테스트1은 인트형의 어레이로 10의 값을 가짐.
var test2:[Int] = [20]
// 테스트2도 인트형의 어레이로 20의 값을 가짐.
var copytest1 = test1
// 카피테스트1은 테스트1이며, 어레이는 카피테스트1에 할당됨.
copytest1 += [23]
// 아까와는 역으로 카피테스트1에 값을 추가했음.
test1
copytest1
// 아까의 예시와 반대의 경우도 가능함! :)
---------------------------------------------------------------------------------------------------------------------------------------
여기까지 Array에 대해서 알아보았습니다.
다음 시간에는 Dictionary 와 Set에 대해서 알아보겠습니다.!
P.S 작성하다가 점검할 때 본건데,,, 존대에서 음슴체로 바뀌네요...ㅎㅎ
Have a lovely DAY~ :))))
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편
160505 Swift 구문편! if, for, switch 까지! (0) | 2016.05.06 |
---|---|
160505 Swift Collection: Dictionary 와 Set (0) | 2016.05.06 |
160423 Swift Tuple, Typealias 편 ! :) 튜플과 타입얼라이어스 (1) | 2016.04.23 |
160419 Swift part.2 String과 Numbers에 대해서 (0) | 2016.04.20 |
160418 swift 란? 스위프트 언어에 대해서 알아봅시다. let과 var편 (0) | 2016.04.19 |
안녕하세요~ 에르의 생각발전소입니다 :)
이번 시간에는 Tuple 과 Typealias를 다뤄볼 건데요.
스위프트의 장점이고 장점인 만큼 많이 활용되는 파트이니,
주의깊게 살펴봐주세요!
자! 그럼 시작해보겠습니다.
상수로된 튜플인 time1을 생성하였고 2, 43, 1 이란 값들을 괄호 묶었습니다. (사진의 오타는 애교로..)
2란 값을 불러오고자하면 0을 42이라는 값을 불러오고자하면 1을 쓰시면 됩니다.
대게 첫번째 숫자니 1부터 시작할거라 생각을 하시고 실수를 많이들 하시는데,
시작은 0 부터 입니다! 참고해주세요!
튜플의 값에는 플롯, 스트링, 섞여들어가도 무방한데요.
예로 하나 만들어보았습니다.
language라는 스트링 타입의 값과. 11이라는 정수값은 가진 값이 ex라는 튜플안에 속해있는 모습니다.
똑같이 0,1,2 순번으로 시작됩니다.
물론 0, 1, 2 대신 문자로 변경이 가능한데요.
위 화면은 0,1,2 대신 hour, min, sec 로 변환시킨 모습입니다.
상황에 맞게 바꾼다면, 더 유용하겠죠?
튜플을 튜플로 또 묶는 건데요.
각 3개의 값을 가지고 있는 두 개의 튜플을 하나의 다른 튜플로 묶은 코드입니다.
일종의 사슬을 만들어준다고나 할까요?
begin이 time1, done이 time2 를 가지고 있는 모습입니다.
그럼 묶여있는 값중 최하위 값을 불러오고 싶다~고 하시면
file:///Users/Logan/Desktop/Screen%20Shot%202016-04-22%20at%2011.05.56%20pm 이런 컴퓨터디렉토리 주소처럼
done에 있는 hour값을 불러야겠죠?
done.hour은!?
done = > time2
time2:( hour:Int, min:int, sec:int ) = ( 1, 51, 15 ) => hour => 1
이라는 값이 나오게되겠죠?
이번에는 타입 얼라이어스입니다!
위 화면은 타입 얼라이어스를 설명하는 글입니다.
typealias AudioSample = UInt16 이다.
var maxAmplitudeFound = AudioSample.min 이면, 0이다.
왜냐하면 UInt16의 최저값은 0이니까요.
이 처럼 타입 얼라이어스는 다른 이름으로 존재하는 값을 정의합니다.
time 이라는 타얼을 만들어 (h:int, m:int, s:int) 라는 타입을 정의하고
period 라는 타얼을 만들어 start:time, end:time으로 타입을 정의했습니다.
period 타얼 안에 time의 타입이 들어갔지요?
let now:period = ( (6,20,13) , (11,2,56) ) 로 start:time에 값을 주고 end:time에도 값을 각각 부여했습니다.
그럼 time이 start와 end로 된 period안에 들어가있고 start = 6,20,13이며, end는 11,2,56이네요.
print("we played a game until \(now.end.h) today. ") 라는 코드를 입력해
값을 불러오고자한다면, 추적해봅시다!
now = period, period = (start:time. end:time) , end:time = 11,2,56 = h:11 , m:2, s:56 = h ==> 11
이라는 결론에 도달하게 되는거죠!
이해가 되셨는지요!
쉽쥬?
160505 Swift 구문편! if, for, switch 까지! (0) | 2016.05.06 |
---|---|
160505 Swift Collection: Dictionary 와 Set (0) | 2016.05.06 |
160424 collection Array 편 :) (2) | 2016.04.25 |
160419 Swift part.2 String과 Numbers에 대해서 (0) | 2016.04.20 |
160418 swift 란? 스위프트 언어에 대해서 알아봅시다. let과 var편 (0) | 2016.04.19 |
RECENT COMMENT