Swift 기본 문법 ⓐ (변수와 자료형, 산술과 논리 연산자)

krystal·2022년 9월 22일
0

Swift 기초

목록 보기
1/11
post-thumbnail

[출처] The Swift Programming Language The Basics 번역본

1. 변수와 자료형

1-(1) 상수와 변수

1. 상수 (constant)
값을 한 번 설정한 뒤에는 바꿀 수 없음
let 으로 선언

2. 변수 (variable)
후에 다른 값으로 설정이 가능
var 으로 선언

상수나 여러 개의 변수를 한 줄에 선언 시, 쉼표로 구분할 것
( C언어처럼 var x=0.0, y=0.0, z=0,0 )

3. 타입 보조 설명 (type annotation)
상수나 변수 선언 시, 저장하는 값의 종류를 명확하게 하는 것
이 때 상수나 변수 이름 뒤에 콜론과 공백을 준 후 사용할 타입의 이름을 설정.

(TMI) 하지만 Swift는 타입을 추론 할 수 있기때문에 작성할 필요는 없다. 초기값을 주지않고 변수를 선언할 때는 코드에서 읽기 편할려면 타입 보조 설명을 쓰면 좋지않을까 하는 생각이 들긴한다😶

ex) var apple : String
▶ String 타입인 변수의 이름을 apple 로 설정한다.

4. 세미콜론 (Semicolons)
C언어처럼 세미콜론 (;)이 필수는 아니나, 한 줄에 여러 코드를 작성할 시 세미콜론을 통해 구분을 주어야한다.
(이는 JS 랑 비슷하다고 느껴지는 듯)

1-(2) 자료형

정수 (Integers)
Int (정수)
UInt (부호없는 정수(unsigned))

부동 소수점 수 (Floating-Point Numbers)
(부동-소수점 수의 타입을 추론할 때는 Double을 디폴트로 선택)
Double (64비트)
Float (32비트)

Boolean
Bool (true/false)

Tuples
튜플은 어떤 조합의 타입이든 원하는 만큼의 개수로 담아 생성이 가능하다.
튜플은 함수 반환 값으로 사용하기 유용하다.

let (statusCode, statusMessage) = http404Error
print("The status code is \(statusCode)")
// 404
print("The status message is \(statusMessage)")
// Not Found
let (justTheStatusCode, _) = http404Error
//일부 튜플 값이 필요할 땐 _를 이용하여 무시하기
print("The status code is \(justTheStatusCode)")
// 404
print("The status code is \(http404Error.0)")
// 404
print("The status message is \(http404Error.1)")
// Not Found
let http200Status = (statusCode: 200, description: "OK")
print("The status code is \(http200Status.statusCode)")
// 200
print("The status message is \(http200Status.description)")
// OK

옵셔널(optionals)
값이 없을 수도 없는 상황에서 사용한다.
값이 있을 경우 옵셔널을 풀어서 값에 접근

물음표는 옵셔널임을 알려줌.
어떠한 값을 가지고있거나 아무런 값도 없을 수도 있다는 의미

옵셔널 변수를 정의하면서 기본 값을 제공하지 않는 경우, 자동으로 nil 로 설정이 된다.
(Swift의 nil과 Objective-C의 nil과 같은 것이 아니라고 함)

var serverResponseCode: Int? = 404
// 404 라는 Int 값을 담음
serverResponseCode = nil
// 아무런 값도 없어짐
var surveyAnswer: String?
// 자동으로 nil이 되었음




2. 산술 연산자, 비교연산자, 논리연산자

2-(1) 산술 연산자

덧셈 (+), 뺄셈 (-), 곱셈 (*), 나눗셈 (/), 나머지 연산자 (%)

덧셈을 통해 String을 이어붙일 수 있다. (JS도 이런 기능이 있었던 듯하다)

"hello, " + "world"  
// hello world

다른 C언어나 파이썬처럼 += 와 같이 복합 할당 연산자가 가능하다.
그 외의 내용은 다른 언어들과 흐름이 같기때문에 생략한다.

2-(2) 논리 연산자

이 또한 다른 언어들과 같은 흐름이기 때문에 큰 틀만 써놓고 내용은 생략한다.

1. 논리 부정 (!a) NOT
2. 논리 곱 (a && b) AND
3.논리 합 (a || b) OR

profile
https://source-coding.tistory.com/

0개의 댓글