기본 연산자

연산자는 값을 확인하거나 변경하거나 합치기위한 기호이다. 단순하게 말하자면 평소 수학에서 쓰는 기호들을

사용하는 것과 같다.

Swift는 c 연산자를 지원하고 몇가지 기능을 변경되었다. 예를 들자면 % 기호가 실수타입에서도 사용할 수 있고, a..<b 나 a...b라는 2가지의 범위 연산자를 제공한다.

(가이드 북에서는 a..b 라고 적혀있으나 Swift 에서 코딩해본 결과 에러가 뜨고 a..<b를 해야 인식을 한다.)

 

할당 연산자

a = b 라는 식이 있다면 b값을 a에 할당해주는 것이다.

튜블처럼 오른쪽 식에 여러 값이 들어온다면 왼쪽에 여러 상수(또는 변수)를 할당할 수 있다.(3번 게시물 참고)

 

산술 연산자, 나머지 연산자

말그대로 사칙연산이다. +,-,*,/ 이 네가지를 산술 연산자라 하고 모든 숫자타입에서 지원한다.

덧셈 연산자는 문자열 타입에서도 지원하는데

 

이렇게 두 문자를 붙이는 기능이 있다.

 

나머지 연산자는 a % b 라는 식이 있다면 b로 a를 나눈 나머지 값을 반환하는 것이다.

앞서 설명했듯이 c에서는 정수형에서만 사용할 수 있었다면 Swift 에서는 실수형도 사용가능하다.

 

 

위에 설명한 산술 연산자와 나머지 연산자는 a = a + 3을 a+=3으로 축약할 수 있다.

같은 예로 -= /= *= %= 이 가능하다.

 

증가 연산자, 감소 연산자

a에 1을 더하려면 a = a + 1을 매번 써야 하는 것은 아니다.

a++ 는 a = a +1을 축약한 것이고

마찬가지로 a-- 는 a = a - 1을 축약한 것이다.

이처럼 ++,--기호는 어떤 상수(또는 변수)에 1을 더하거나 빼는 역활을 하는데 이것을 상수(또는 변수)의 앞이나 뒤에 붙일 수 있다.

만약 앞에 쓰인다면 값을 증가(또는 감소)시키고 값을 반환한다면

       뒤에 쓰인다면 값을 반환한 다음에 증가(또는 감소)를 한다.

 

위의 설명을 유의하면서 아래 소스를 참고한다.

 

 if 문

if문은 조건을 주었을 때 참일 경우를(또는 거짓일 경우) 따져서 특정 행동을 실행하는 것이다.

if (조건식)으로 사용하며 참일 때 실행할 소스의 앞과 뒤에 '{' '}'을 적어주고, if문에 또다른 조건식을 넣고싶을 땐 else if (조건식), 거짓일 경우를 실행하고 싶을땐 else를 적어주면 된다.

 

▲배고프므로 밥을 먹으면됩니다.

 

 for-in 문

어떤 일을 반복해서 하고자 할때 사용하는 for-in문이다.

사용방법은 for (변수) in (범위)을 적은 다음 반복하고자 하는 부분의 앞과 뒤에 '{' '}' 를 적는다.

범위를 정하는 것은 상수값이나 배열, 사전으로 가능한데 상수값으로 적었을때는 ..< 과 ... 이있다. 

   
위의 예시로 설명하자면 0...5는 0~5까지 이고 0..<5는 0~4까지 반복을 하는 것이다. 상수값이 들어가는 자리에 상수나 변수를 넣어도 무방하다

for-in문은 지정하는 범위를 배열로 해도되는데 위의 예제의 경우 i는 순서대로 10,20,30,40,50이라는 값이 들어오게된다.

 

다른방법으로 for (변수와 초기값); (조건식); (증가값);이 있는데 아래의 소스를 보면 알겠지만 for-in문과 달리 실수형도 된다.

▲i가 1부터 10까지 0.5씩증가하면서 반복한다.

 

 

옵셔널

옵셔널은 그 값이 존재하냐, 존재하지 않느냐를 체크 하는 것이라고 설명하면 Bool타입과 비슷하게 보인다.

때문에 한가지 예를 들자면,

 

    

▲(왼)Int -> String 타입으로 전환해서 출력, (오) String -> Int 타입으로 전환해서 출력

 

Int->String 에서는 Int타입 상수(또는 변수) 안에 있는 숫자가 어떤 수든 간에 전부 문자열로 바꿀 수있다.

하지만 String->Int 에서는 String타입 상수(또는 변수)안에 숫자뿐만아니라 문자(A,B,C,등)도 포함되있을 수 있기 때문에 Swift에서는 Int 타입이 아니라 Int? 이라는 Optional Int 타입으로 되는 것이다.

Optional Int 타입​에서는 Int 타입처럼 사용할 수 없고 어떤 값이 존재한다 또는 존재하지 않는다 만 인식한다.

 

Optional 에서 본래 상수(또는 변수)로 사용하도록 만들기 위해서는 옵셔널 바인딩(Optional Binding)을 하면 된다.

옵셔널 바인딩은 if문이나 while문을 사용하여 옵셔널 안에 값이 있는지 확인하고 상수(또는 변수)로 추출할 수있다.

 

 

사용법은 간단하게 if 앞에 그대로 넣어주면 된다.

위에 그림과 같이 상수 b에 넣을 a.toInt 값이 Int값을 가지고 있는지 체크하고 만약 그렇다면 b에 a.toInt 값을 기억함과 동시에 b값을 출력하고, Int값이 아니라면 상수 b에는 값이 기억되지 않고 else문이 실행된다.

'프로그래밍 > Swift' 카테고리의 다른 글

타입 세이프와 타입 추정 그리고 타입 전환, 튜블  (0) 2016.07.09
(Swift) 변수와 상수, 출력  (0) 2016.07.09
프로젝트 생성  (0) 2016.07.09
Apple에서 선보인 Swift  (0) 2016.07.09

타입 세이프와 타입 추정 그리고 타입 전환

Swift는 특정 타입을 지정해주지 않아도 코드 내에서 다루는 값들의 타입이 명확하도록 만드는 타입 세이프 언어이다.

때문에 Double 타입이 들어갈 부분에 Bool 타입이나 Int 타입을 전달할 수 없다.

반대로 타입 추정을 이용하여 타입을 일일이 지정해주는 일을 줄일 수 있는 것이 장점이다.

(이전 글에서 타입을 적지 않고 초기값으로 타입 형태가 정해지는 것을 생각하면 될 것같다.)

 

Swift에 기본적인 타입 초기화 및 값 전달 방법은 서로 다른 타입일 때는 아래와 같이 새로운 상수(또는 변수)에서 바꾸고자하는 타입을 앞에 적고 상수(또는 변수)를 괄호로 묶으면 된다.

    

▲Double 타입 변수 aqq에 Int(aqq)를 하여 Int 타입으로 덧셈을 하고 b 변수에 값을 저장한 것.

   마찬가지로 Double타입으로 바꿀려면 Double(aq)를 하면된다. 

 

만약 Int(aqq)를 하지않거나 Double(aq)를 하지않고 aqq, aq만 적었다면 에러가 같은 타입이 아니기 때문에 에러가 뜰 것이다.

 

튜블(Tuples)

튜블은 여러 값들을 하나의 값으로 묶어주는 역활을 한다. 튜블안에서는 어느 타입도 가능할 뿐더러 각각의 타입이 동일할 필요가 없다.

 

사용 방법은 아래와 같이 원하는 상수(또는 변수) = (원하는 값들) 을 하면된다.

또한 저장한 값들은 아래와 같이 언제든지 빼낼 수 있다. 


▲a라는 상수에 "Apple"과 5 라는 값을 저장해놓고 str과 int 변수에 각각 값을 저장하여 출력

 

사용하고싶지 않은 값이 있다면 언더바(_)를 해주면 된다.

▲5라는 값이 저장되있는 곳에 언더바(_)를 하여 값을 안받았다.
 

 

값이 저장되는건 0번부터 저장이 된다.

 a의 0번째 방

a의 1번째 방 

 "Apple"

그러므로 다른 상수(또는 변수)로 옳기지 않고 값을 바로 쓸 수 있다.

▲a.0에는 "Apple"이 저장되있고 a.1에는 5가 저장되있기 때문에 다음과 같은 결과가 출력된다.

'프로그래밍 > Swift' 카테고리의 다른 글

기본 연산자, if 문, for-in 문, 옵셔널  (0) 2016.07.09
(Swift) 변수와 상수, 출력  (0) 2016.07.09
프로젝트 생성  (0) 2016.07.09
Apple에서 선보인 Swift  (0) 2016.07.09

변수와 상수를 사용하기전에 선언을 해야되는데 변수는 var 키워드, 상수는 let 키워드를 사용한다.


▲a라는 변수에 값 10을 넣었고, b라는 상수에 값 1을 넣었다.

 

 

변수는 여러번 값을 변환할 수있지만 상수는 한번 지정하면 값을 변환할 수가 없다.

▲상수 g에 "Hello"을 넣고 "aqzxa"값을 넣으려 했을 때 에러가 뜬다.

 

타입(Type)

 

Swift에서는 타입을 지정하지 않고 타입에 맞는 값을 넣어주면 타입이 자동적으로 바뀐다.

▲c는 Double, d는 Int, e는 Bool, f는 String 타입으로 지정된 것이다.


또한 값을 넣지 않고 어떤 형태로 값을 저장할 것인지 명확하게 타입을 지정할 수있다.

방법은 그림과 같이 var (변수): (타입) 으로 하면되고 타입을 지정해주어도 값을 넣어줄 수 있다.

주의할 점은 타입을 적을 때 앞글자를 대문자로 작성해야한다.

▲a,b,c,d,e,f에 타입을 지정해 주었다. Array이나 Dictionary은 다음에 설명할 예정이다.
 

 타입 이름

값의 종류 

Int (UInt)

정수 (​양의정수) 

Bool

불리언 값(True,False 또는 1,0) 

Double,  Float

실수

String, Character

문자열,문자(한글자) 


Int

Int의 경우 Int32와 Int64도 있지만

Int는 32비트 플랫폼의 경우 Int32와 동일한 크기를 갖고

        64비트 플랫폼의 경우 Int64와 동일한 크기를 갖습니다.

또한 UInt의 경우 부호가 없는 정수타입만 지원합니다.

( 단, 값이 큰경우가 아니라면 Int 타입을 사용해서 뒤에서 다룰 타입 세이프와 타입 추정으로 묘사되는 다른 숫자 형태로의 변환또는 정수의 타입일치가 필요한 경우를 피해 상호처리가 가능하도록 하는 것이 좋다.)

 

 

출력


처음 프로젝트를 만들 때 Println("Hello World") 을 봤을 것이다.

Swift에서는 두가지 출력 방식이 있는데

println(x) 는 x를 출력하고 줄단위로 끊어서 값을 출력해주는 전역 함수이고,

print(x) 는 x를 출력만 한다.

▲print와 println의 차이

 

또한 println, print에서 변수나 상수를 메세지에 포함할 수 있다.

사용방법은 변수나 상수이름을 괄호로 감싸고 앞에백슬레시( \ )를 넣으면 된다.

(다른 여러 기능들은 뒤에서 다룰 예정이다.)

먼저 Swift를 하기 위해서는 xcode6 베타 버전을 받으면 된다.

 (https://developer.apple.com/swift/resources/)

 

프로젝트 만들기




1.Xcode를 실행해서 'Create a new Xcode project'를 클릭한다.




2.'OS X-Application-Command Line Tool'로 만든다.




3.Language를 Swift로 하고 프로젝트 명을 적고 저장장소를 지정한다.

 

 

4. 그러면 언제나 그렇듯이 Hello World가 당신을 기다릴 것이다.

Xcode로 IOS어플리케이션 만들려고 맥북에어를 구매해서 보니 

Apple사가 저번달에 Swift라는 프로그램을 배포했었다.

 


▲칼새라는 뜻에 맞는 새그림이다

이 프로그램은 기존에 있던 Objective-C와 자연스럽게 비교가 되는데 
개인적으로 새로운 것들이 좋기 때문에 Swift를 공부하기로 했다.

다행스럽게도 Apple이 Swift 가이드 북을 iBooks에 무료 배포 중이였고
우리나라 사람들이 전부 번역해 놓았다(사이트 주소:http://lean-tra.github.io/Swift-Korean)

오타도 가끔 있고 가이드 북이라 초심자에겐 충분하지 않은 설명으로 구성되있으니
다른 언어를 사용해보고 오거나 제대로 된 책이나 강좌를 보면서 배우는게 좋을 것 같다.


+ Recent posts