35
Swift 연산자문자열 창원대학교 정보통신공학과 Mobile-X 김 용 재 지도교수 : 박동규 2015.01.06

Swift 세미나

  • Upload
    -

  • View
    938

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Swift 세미나

Swift 연산자와 문자열

창원대학교 정보통신공학과 Mobile-X 김 용 재

지도교수 : 박동규 2015.01.06

Page 2: Swift 세미나

Swift 연산자

• Objective-C의 표준 연산자들을 제공

• Objective-C의 실수들을 사전에 방지할 수 있는 기능을 제공

• 기본 연산자의 동작을 재정의 할 수 있는 기능을 제공

• 새로운 연산자를 만들어서 사용할 수 있는 기능을 제공

Page 3: Swift 세미나

할당 연산자 ( = )

• 변수의 값을 초기화하는데 사용하는 연산자

• 하나의 변수에 다른 변수의 값이나 상수등을 할당하는 연산자

변수 x의 값을 5로 할당하는 할당 연산자의 예제

Page 4: Swift 세미나

Swift 할당 연산자

Swift에선 튜플의 초기값을 설정하거나 다른 튜플의 값을 할당할 때 할당 연산자를 사용

튜플의 값을 할당시키는 예제

Page 5: Swift 세미나

Swift 할당 연산자

C & Objective-C • x에 y값이 할당되어 x값의 참(0제외) 거짓(0)을 반환

Swift • x에 y값이 할당되나 값을 반환하지 않기 때문에 오류!!

오류 발생!!

Swift if구문은 할당연산자를 통한 실수를 사전에 미리 방지하는 기능을 추가

C와 Objective-C의 할당 연산자와는 다른 Swift의 할당연산자는 ‘값’을 반환하지 않도록 변경

Page 6: Swift 세미나

산술 연산자

Swift는 4가지 표준 산술 연산자를 모든 숫자 타입에 지원

• 덧셈(+)

• 뺄셈(-)

• 곱셈(*)

• 나눗셈(/)

Page 7: Swift 세미나

Swift 산술 연산자

• Swift 산술 연산자는 오버플로우를 지원하지 않음

• 그러나 Swift 오버플로우 연산자를 사용하여 오버플로우 행동을 선택할 수 있음

• 덧셈 연산자는 문자열을 지원

• String + String = String

Page 8: Swift 세미나

나머지 연산자

(a % b)란 b의 배수가 a에 맞게 곱해지며 남아 있는 값을 반환

ex) 9 % 4 = 1

Page 9: Swift 세미나

Swift 나머지 연산자

a = (b x 배수) + 나머지 배수는 a 에 들어갈 b의 최대의 숫자

a 값이 양수 나머지 값도 양수

b 값이 음수여도 나머지값은 상관 없음

부호무시!

a 값이 음수 나머지 값 음수

음의 값에도 나머지 연산자 적용 가능

(4 x 2) + 1

(4 x 2) + 1

(4 x -2) + (-1)

(4 x -2) + (-1)

Page 10: Swift 세미나

Swift 나머지 연산자

Swift 에선 부동소수점 나머지 연산 지원

Ex) 8 % 2.5 = 0.5

Page 11: Swift 세미나

증가 감소 연산자

• 증가(++) 연산자와 감소(--) 연산자를 지원한다.

• 증가연산자는 변수에 + 1의

• value++ value = value + 1

• 감소연산자는 변수에 - 1의 약어

• value-- value = value - 1

Page 12: Swift 세미나

단항 연산자

• 변수의 앞에 - 부호를 붙이는 단항 마이너스 연산자

• 단항 마이너스 연산자를 통해 숫자값의 부호를 바꿀 수 있다.

• -value

• 단항 플러스 연산자

• 단항 마이너스 연산자와는 달리 아무 역할도 하지 못한다.

• +value

Page 13: Swift 세미나

복합할당 연산자

• Swift는 복합할당 연산자를 사용할 수 있다.

• ex) +=, -=, *= 등..

그러나 앞에 할당 연산자에서 설명하였듯이 연산 결과의 반환값을 리턴할 수 없다는 것을 주의

Page 14: Swift 세미나

비교 연산자• Swift는 표준 C의 비교 연산자를 지원

• 같음 연산자 ( a == b )

• 같지 않음 연산자 ( a != b)

• 보다 큰 ( a > b )

• 보다 작은 ( a < b )

• 보다 크거나 같은 ( a >= b )

• 보다 작거나 같은 ( a <= b )

비교연산자는 각 문장이 참인지 여부를 나타내는 ‘Bool’ 값을 반환

Page 15: Swift 세미나

삼항 조건 연산자

question ? answer1 : answer2

question이 참이면 answer1 값이 반환

question이 거짓이면 answer2 값이 반환

Page 16: Swift 세미나

Swift 범위 연산자

• 폐쇄 범위 연산자 (a...b)

• 반폐쇄 범위 연산자 (a..<b)

Page 17: Swift 세미나

Swift 폐쇄 범위 연산자

• a...b는 a에서 b까지의 범위를 포함하며 a와 b를 포함함

1과 5를 포함하는 범위

범위 연산자는 배열과 리스트의 원소를 하나씩 참조하기 편하게 만든 범위로 Float형은 오류가 난다!!

Page 18: Swift 세미나

Swift 반 폐쇄 범위 연산자

• a..<b는 a에서 b까지의 범위를 포함하며 b를 제외함

• 배열과 리스트의 원소를 참조할 때 편함

결과 화면

0 31 2

4

Page 19: Swift 세미나

논리 연산자

• 논리 연산자는 참과 거짓의 불리언값인 논리값을 수정하거나 결합

• 논리 not 연산자 ( !value ) - 논리값 반전

• 논리 and 연산자 ( valueA && valueB )

- 하나라도 논리 값이 거짓이면 전체 표현식 또한 거짓

• 논리 or 연산자 ( valueA || valueB )

- 하나라도 논리 값이 참이면 전체 표현식 또한 참

Page 20: Swift 세미나

Swift 문자와 문자열

• 이제 문자열 표시는 @“Hello World”가 아닌 @가 사라진 “Hello World”

• 포인터 참조 형식인 Objective-C 의 문자열과 달리 Swift의 문자열은 값 형식이기 때문에 할당이나 파라미터 등에 사용될 때 참조가 아닌 값 자체가 복사

Page 21: Swift 세미나

Swift 문자열 초기화• 문자열 초기화엔 두가지 방법이 있다.

1. “”

2. String()

빈 문자열 값을 알 수 있게 해주는 isEmpty 속성

Page 22: Swift 세미나

문자와 문자열문자열이 아닌 개별 문자를 선언할 때는 Character 자료형을 직접 지정해 주어야 한다.

문자열

문자

Objective-C 와 C에선 ‘a’ 와 “a” 같은 작은 따옴표와 큰 따옴표로 문자와 문자열을 구분 하였으나

Swift에서는 작은 따옴표를 쓰지 않고 큰 따옴표만 쓰기 때문에 문자를 정의할 땐 자료형을 정의하여야한다.

Page 23: Swift 세미나

Swift 문자열

문자열(String)은 문자 자료형(Character)의 집합

문자열 “Dog!🐶”는 D, o, g, !, 🐶의 문자로 이루어진 집합

Page 24: Swift 세미나

Swift 문자열 countElements

문자열의 문자의 갯수를 문자열 자료형으로 넘겨주는 countElements

Page 25: Swift 세미나

Swift 문자열 연산자String 문자열끼린 + 연산자를 통하여 서로 합쳐질 수 있음

Character 문자 자료형과 String을 연결하기 위해선 append속성을 이용하여 연결 가능

String + Siring (가능) String + Character (불가능) Character + Character (불가능) Stirng.append(Character) (가능) Character.append(String & Character) (불가능)

Page 26: Swift 세미나

Swift 문자열 삽입Objective-C의 문자열은 기본적으로 불변 문자열

가변 문자열은 NSMutableString 객체를 사용 하여야 했음

별도의 클래스를 제공하던 Objective-C와는 달리 Swift는 기본적으로 가변 문자열은 var 불변 문자열은 let으로 선언 NSMutableString, MutableString 자료형은 사라짐

문자열 삽입은 상수, 변수 등을 문자열안에 포함시켜 새로운 문자열 값을 만드는 방법

Page 27: Swift 세미나

Swift의 유니코드

• 컴퓨터가 문자를 알기위해 숫자로 정의해 놓은 문자코드

• 8비트 유니코드: \xnn (n:16진숫자 하나)

• 16비트 유니코드: \unnnn

• 32비트 유니코드: \Unnnnnnnn

• 특별한 문자형(Escape) - 이스케이프: \0(null character), \\, \t, \n, \r, \", \'

Page 28: Swift 세미나

유니코드의 Character

여러가지의 유니코드가 한 Character안으로 들어가게 되면 원래 유니코드로 표현이 가능한 표현은 합쳐져서 할당된다

Page 29: Swift 세미나

Swift의 다양한 유니코드

Swift는 숫자와 문자뿐만 아니라 다양한 심볼이나 이모티콘도 유니코드로 활용

Page 30: Swift 세미나

Swift 문자열 유니코드

Dog‼🐶 문자열의 8비트 유티코드

8비트 16비트 32비트 유니코드로 접근할 수 있으며 비트수가 커질 수록 유니코드는 적게 나옴

128, 188 유니코드는 강아지 이모티콘의 유니코드이다

Page 31: Swift 세미나

Swift 유니코드 Scalar유니코드 Scalar란 각각의 유니코드가 우리에게 어떻게 보여지는지에 관한 값

Character값이 아닌 유니코드 Scalar 값 !! 느낌표 두개는 한개의 유니코드로 표시가 가능한 것을 알 수 있다.

Page 32: Swift 세미나

Swift 문자열 비교

전체 문자열을 비교할 때는 비교 연산자 ==을 이용

Page 33: Swift 세미나

Swift 문자열 비교

접두어 비교

접미어 비교

Objective-C에서 제공했던 메소드 그대로 Swift에서도 제공

Page 34: Swift 세미나

Swift 대소문자 변환

Objective-C에서 제공했던 메소드 그대로 Swift에서도 제공

Page 35: Swift 세미나

감사합니다.

이상으로 세미나를 끝마치겠습니다.