상수와 변수
let 상수 - 변하지 않는다
var 변수 - 변할 수 있다.
* 변수 혹은 상수의 타입을 별도로 지정하지않는 암시적 타입선언을 할 수 있다.
* import Foundation -> 문자, 스트링, 숫자와 같은 기본 객체, 컬렉션인 배열,딕셔너리,세트,날짜,시간,메모리관리 등 프로그래밍 전반적인 기능을 제공해주는 Class
Swift 기본 데이터형
Int, String, Float, Double, Bool(=boolean), Character . . . .
UInt, Int 타입은 사용중인 OS에 따라 그 크기가 달리질 수 잇다. ( Int8, Int16, Int32, Int64 )
while, do~ while 문
* Swift 2.2 버전으로 업데이트 되면서 do ~ while 은 repeat ~ while 로 대체 되었다.
* do 는 예외처리로 가버렸 빠이빠이!
초깃값
while 조건 {
증가값
}
---
초깃값
repeat {
증가 값
} while 조건
repeat while 문은 최소한 1번은 반복된다.
for 문 과 for in 반복문.
for var i = 0; i<10; i++ {
일반적인 for 문의 형태도 사용 가능
}
for num in 1...10 {
num 이렇듯 1~10까지 반복을 쉽게 할 수 있다.
}
if 문 switch 문
if 문은 다른언어와 그닥 다를게없다.
if 조건 {
실행문장
}
a && b
- a 이거나 b
a || b
- a 와 b
조건문이 많아지면 - > switch case 문으로 대체하도록 하자.
swift 의 switch csse 문은 다른 언어보다 지원해주느게 쵸큼 더 많다.
* break 문을 명시적으로 적지 않아도 된다.
- 기본적으로 다음 case로 넘어가지 않는다 . 넘어가려면 fallthrought 와 같은 명령어가 필요함.
* 각 case는 비어있을 수 없다. 즉 실행가능한 statement가 꼭 필요하다.
* case에는 값의 포함 여부도 알 수 있다.
- case 1...3 이런식 1~3까지의 case를 나타낸다.
* case에는 Tuple도 담을 수 있다.
- case(x, y) : ~~~
- csse(1...3, 4...40) : ~~~ 이런것도 가능하단겨!
* 값이 일치하는 경우 어떤 값을 변수, 상수로 묶을 수 있다. ?
- let something = (2, 0)
switch something
case (let x , 0)
- x 의 값은 2
* 부가적인 조건을 더 줄 수 있다.
- switch something
case let(x, y) where x >= y
( something 은 (2,0) 이었 으므로 이 case는 true )
Array 배열 과 Dictionary
let someValue = [String]() - someValue 라는 아무런 값이 없는 배열.
let someValue: [String] = [] - 마찬가지임.
var someValue = ["a","b","c"] - a,b,c 라는 값을 갖고잇는 string 배열
someValue = [String]() - a,b,c 값을 가진 someValue를 초기화.
someValue += ["d"] - d값 추가
someValue.append("d") - d값 추가.
= 배열의 마지막에 항목들을 추가함
someValue.insert("e", atIndex: 3)
= 배열의 3번 째에 e 추가.
someValue.removeLast()
= 마지막값 제거 (removeAtIndex 가능)
숫자 배열도 같은 형식
var dataFloat = [Float] (count : 10, repeatValue: 0.1)
- Float Type Array, 갯수는 10개 초기값은 0.1
Dictionary
key, value로 구분하는 순서가없는 배열.
형태 ==== var dicValue : [String: String] = ["strKey" : "strValue", "valKey": "valValue"]
사용
for ( first, end ) in dicValue {
first - 키값의 alias
end - value 값의 alias
}
처럼도 사용 할 수 있다.
값 추가
dicValue["someKey"] = "someValue"
dicValue 딕셔너리에 someKey 라는 이름으로 someValue 추가했다.
값 삭제
dicValue["delKey"] = nil
Fucntion 함수.
함수는 반복해서 사용할 수 있는 (재사용 할 수있는) 코드를 모아놓은 블럭 ( '{}' ) 이다.
func someFunctionName {
statement
}
매개 변수 (Parameter) 를 사용 할 수 있다
func someFunctionName( someVariable: String ) {
someVariable
}
retrun 값의 Type을 정의 할 수 있다.
func someFunctionName( a: Int, b: Int) -> Int {
retrun a+b
}
someFunctionName(3, b: 4)
parameter 에 alias를 줄 수 있다
func some( sumin a:Int, suming b:Int) {
a+b
}
some(sumin: 3, suming: 4)
Optionals
swift 의 변수는 nil 값을 받지 못한다.
var sVal: String = nil ---> 떄문에 이 구문은 오류다.
때문에
var sVal: String? = nil 으로 Optionals로 wrapping 하면 (표현이 이렇ㄷㅏ)
sVal 은 스트링값이 들어갈 수 도 없을(nil값) 일 수도 있다.
이렇듯 ? 표시로 변수에 nil 값이 들어갈 수 있다는 것을 강조한다.
이번에는 unwrapping optionals 옵셔널을 벗겨보자 하앜
var sVal: String? = nil
if let some = sVal {
print("\(some)")
}
some 에는 값은 없지만 에러는 아니다 ( 값을 담으면 나오겟찌 )
또
let value : String? = "An Optional String"
let strVal : String = value!
처럼
value!를 사용해서 value에 값이 있다 라고 확신할때 아 이건 있어! 느낌표 뙇 ㅇㅋ?
또!! 절대적인 옵셔널이라고 해써
let value2: String! = "implicitly optionals"
let strVal2: String = value2
value2: String! 처럼 이미 값이 있ㄷㅏ! 있으니까 !!! 느낌표를 붙여줘서 선언한다.
하지만 이때 value2의 값이 없으면 에러가 되니 주의.
= 정리하면 옵셔널?은 nil값이 들어갈 수 있게끔 해주는 거고 ! 느낌표는 많이 쓰면 안된다. 자제 하자.
'휴지통 > 휴지통1' 카테고리의 다른 글
Swift Class and Structure (0) | 2016.05.09 |
---|---|
Swift Function (0) | 2016.05.09 |
android jar파일의 resource에 접근하는 법. (0) | 2016.04.27 |
Excel to SQL 엑셀에서 SQL 쿼리 만들기. (0) | 2016.04.06 |
Spring Scheduling 참조. (0) | 2016.04.01 |
댓글