참고1: wikidocs.net/16044
참고2: blog.naver.com/hong227/222011326496
참고3: jusung.gitbook.io/the-swift-language-guide/language-guide/02-basic-operators
참고4: blog.naver.com/ykycome00/222036709750
변수 "var" 값을 수정할 수 있음
상수 "let" 값이 고정임. 수정 불가.
◆ name / birthyear 같은 값을 선언할때
1. 변수(var) / 상수(let) 로 선언하고
2. 자료형(type)도 선언해줘야 한다. <-- Type annotation 이라고 함 ㅎㅎ
Ex. Float(소수형) , Int(정수형), String (문자형)
◆ 선언은 아래처럼 함.
var name : String = " FLATINA " <- String 형일때만 " " 붙여준다
let birthyear : Int = 1994
var height : Float = 183.7
name은 var으로 선언됐으니까 바꿀 수 있다.
name = "YUNA"
birthyear은 let으로 선언됐으니까 바꿀 수 없다
birthyear = 2021 // 컴파일 에러!
// birthyear는 let으로 선언된 상수니까~
◆ 값끼리 연산할때
같은 자료형끼리만 연산이 됌 (사칙연산)
birthyear + height // 컴파일 에러!
// birthyear : Int 타입이고, height : Float 타입이니까.. 서로 연산 불가능
Float (birthyear) + height // 1994 + 183.7 = 2127.7 <-- 컴파일 성공!
// Int 타입인 birthyear를 Float 타입으로 변경하면,
height의 자료형과 똑같아지므로, 연산 쌉가능
1994년에 태어난 플라티나야 안녕! 을 출력해보자
let name : String = " 플라티나 "
let birthyear : Int = 1994
String (birthyear) + "년에 태어난" + name + "야 안녕!" // 1994년에 태어난 플라티나야 안녕! <-- 컴파일 성공!
// "년에 태어난" + name + "야 안녕!" <-- 얘네가 String 타입이니까,
birthyear를 String 타입으로 변경해줬다
◆ 타입 추론 (Type Inference)
뒤에 : 자료형 을 생략해줘도 name, birthyear 를 정의할 수 있다.
var name = " 플라티나 "
let birthyear = 1994
◆ 배열과 딕셔너리
Swift 에는 배열이랑 리스트랑 구분 안됌~
가변형 배열과 불변형 배열만 있을 뿐...
◆ 배열 (Array) 자료형 선언시, [자료형 이름] = [ 엘리먼츠들...] 이렇게 나타낸다.
let a: [Any] = [1,1.0,-1,"하이","A",true]
let b: [Bool] = [true,galase, true, true, false]
let c: [Character] = ["a","b","c"] <-- 단일문자 자료형
var s: [String] = ["안녕하세요","내이름은","FLATINA","라고한다."] <--문자열 자료형
var d: [Double] = [1.0 ,2.0, 3.3,4.4] <-- 실수형 (나타낼때 소숫점 15번째에서 반올림함)
var f : [Float] = [1.1,1.2,1.3] <-- 실수형 (소숫점 6번째자리에서 반올림 함)
var i : [Int] = [1,2,3,4] <-- 정수형
배열을 배열할때
let a : [[Int]] = [[1,2,3],[4,5,6],[7,8,9]]
print(a[1][1]) // 출력결과: 5
배열의 초기값과 크기를 지정해서 선언할 수 있다.
let intArr = [Int](repeating: 0, count: 5)
비어있는 배열 선언하는법
var intArr = Array<Int>( )
var strArr = [String]( )
var FloArr = [[Character]]( )
var boolArr = Array<[Bool]>( )
◆ 기본 연산자
※ 스위프트에서는 아래 3개 연산자를 지원한다
산술 연산자 " + - / % "
논리 연산자 " && || "
범위 연산자 " a..<b , a...b "
※ 스위프트에는 단항, 이항, 삼항 연산자가 있다.
단항 연산자 : " -a !b c! " 처럼 대상 앞뒤에 붙여서 쓰는 연산자
이항 연산자: " 2+3 " 처럼 두 대상사이에 위치하는 연산자
삼항 연산자: " a ? b : c " 처럼 딱 한개 존재하는 연산자
※ 할당 연산자 " = " : 값을 초기화하거나 변경시킴. 상수랑 변수 모두 사용가능~
할당 연산자는 "=" 이거다. 이걸 써서 값을 할당하는 것이다.
let b = 10
var a = 5
a = b
// a 값은 10 (a는 변수니까 a가 변해야지 ㅋ)
※ 튜플을 이용해서 여러값을 한번에 할당 가능함.
let (x,y) = (1,2)
// x 는 1, y 는 2
※ C, Object-C 랑 다르게 Swift는 할당 연산자에서 값을 반환하지 않음 <- 먼뜻이지?
왜냐면 동등비교연산자 "==" 를 써야하는 자리에 할당연산자 "="가 들어가면 실수가 되기 때문~
if x = y { } // = 대신 == 이거 써야함!!
// 오류! x = y 는 값을 반환하지 않기 때문에, 이건 이상한 문법임
※ 사칙 연산자 " + - * / "
덧셈 "+"
뺄셈 "-"
곱셈 "*"
나눗셈 "/"
1+2 // 3
5-3 // 2
2*3 // 6
10.0 / 2.5 // 4.0
C, Object-C 랑 다르게 Swift는 사칙 연산의 값이 오버플로우 되는걸 허용하지 않는다. <- 먼뜻??
※ 오버플로우: 선언한 변수에 허용된 범위를 초과하는 할당이 되는 경우를 말함.
Ex. 문자열 두개를 합치기 (할당된 문자열 1개를 초과하는 2개의 값을 만들기 위해, 오버플로우 연산자를 써야함)
"hello, " + "world" // equals "hello, world"
※ 나머지 연산자
정수 나누기 정수해서 몫을 제외한 나머지 값을 출력하는 연산.
a % b 처럼 나머지 연산을 지원하는 것.
9 % 4 // 1
-9 % 4 // -1
※ 단항 음수 연산자 <-- -a, !b , c! 처럼 앞뒤로 붙는 단항연산자 중, 앞에 마이너스 표시하는 연산자임.
숫자 값 앞에 "-" 붙인다.
let three = 3
let minusThree = -three // -3
let plusThree = -minus Three // 3 혹은 -(-3) ㅎㅎ 같은말
단항 양수 연산자
"+"로 표현되는 단항 양수 연산자는 부호에 아무런 영향을 끼치지 않는다
let minusSix = -6
let alsoMinusSix = +minusSix //
'APP 개발 : 기본문법 > SWIFT' 카테고리의 다른 글
튜플 (0) | 2021.04.25 |
---|---|
SWIFT 기본문법 : 상수와 변수 (0) | 2021.04.24 |
Swift 기본문법 : 명명법 / 콘솔로그 / 문자열 보간법 (0) | 2021.04.24 |
SWIFT 기본문법 (0) | 2021.04.24 |
SWIFT 기본문법 (0) | 2021.04.24 |