Swift 기초 문법

DEVJUN·2022년 4월 19일
0

Swift 문법

목록 보기
1/14
post-thumbnail

1. 변수와 상수

   스위프트도 다른 언어들과 마찬가지로 데이터가 저장되는 메모리 내 주소 공간을 개발자가 쉽게 인식하고 사용할 수 있도록 변수와 상수를 제공한다.
  변수와 상수의 선언 및 초기화 문법은 다른 언어들과 마찬가지로 비슷하다. 변수와 상수의 차이는 변수는 값을 변경할 수 있지만, 상수는 한 번 저장된 값을 다른 값으로 변경할 수 없다.

  다른 언어와 다르게 신기했던 점은 두번 째 코드처럼 식별자를 다양한 문자와 기호 심지어는 이미지까지 넣을 수 있는 것이었다.

var vValue = 3  //변수 선언 및 초기화
var 🧑🏻‍💻 = "lsj"

let cValue = 3  //상수 선언 및 초기화

//문자형, 문자열형 둘다 "" 사용, '' 사용  -> X
var projectname = "ios study"
let language = "swift" 

  문자열 변수 혹은 문자형 변수에 값을 할당할 때는 위와 같이 작은 따옴표가 아닌 둘 다 큰 따옴표를 사용해야 한다.

변수와 상수의 이름을 정의 할 때는 다음과 같은 규칙을 따른다.

  • 알파벳과 한글 자음 및 모음, 아라비아 숫자를 사용할 수 있으며, 특수 기호나 한자, 이미지용 바이너리 코드까지 사용할 수 있다.

  • 연산자와 혼동할 수 있는 [+, -, *, / ] 및 공백은 변수, 상수명에 사용할 수 없다. 단, _는 사용할 수 있다


2. 자료형

var day = 7 //선언과 초기화를 동시에 

var year : Int //선언
year = 1999 // 초기화

 스위프트에서는 변수의 선언과 초기화를 동시에 할 수도 있지만, 선언 이후 나중에 초기화를 할 수 있다. 위 코드에서 year뒤에 :Int를 제거하면 오류가 발생한다. 스위프트에서는 :Int와 같이 타입 어노테이션을 통해 변수나 상수를 선언할 때 그 타입을 명시적으로 선언해 줌으로써 어떤 타입의 값이 저장될 것인지를 컴파일러에 직접 알려주는 문법을 사용한다.

	var name : String //명시적인  String 타입
    var distance : Double //명시적인  Double 타입
    
    //타입을 명시한 변수 선언
    var name : String = "홍길동"
    
    //타입을 명시한 상수 선언
    let birthYear: Int = 1998

 위 코드처럼 타입 어노테이션 문법을 매번 사용할 필요는 없다.
var name = "홍길동" 스위프트에 내장된 타입 추론기가 변수의 초기값을 이용해 타입이 무엇인지 추론해 낼 수 있기 때문이다. 홍길동 이라는 문자열이 초기값으로 설정 됬으니 다음부터는 name이라는 변수에는 문자열 타입만 올 수 있는 것이다.

타입 어노테이션을 사용해야 하는 경우

  • 선언과 초기화를 분리할 경우
	var year : Int
    year = 1999
  • 타입 추론으로 얻어지는 타입이 아닌, 다른 타입을 직접 지정할 필요가 있을 때
	var temper : Float = 3
    
    var lastName : Character = "이"

 예를 들어 위의 코드에서 3 앞에 : Float로 타입 어노테이션을 적어주지 않으면 Double로 결정이 되고 lastName 또한 : Character가 없다면 String으로 결정될 것이다. 따라서 이러한 경우에는 타입 어노테이션을 사용해야 한다.

타입이 다른 변수끼리의 결합

	var stmt = "꼼꼼한 재은씨의 키는"
    var height = 185
    
    var heighStmt = stmt + String(height)
    // "꼼꼼한 재은씨의 키는 185"

 String(height)은 정수값이나 기존의 변수를 문자열 타입으로 바꾸는 것이 아니라, 새로운 문자열 인스턴스를 만드는 것 임을 명심해야 한다. 기존의 변수에는 아무런 영향이 없고, 새로 생성하는 것이다.

문자열 템플릿

	let name = "이상준"
    let birthYear = <"1998"
    
    let info = "\(name)\(birthYear)년에 태어남!"
    //이상준은 1998년에 태어남!

 문자열 템플릿은 단순히 백슬래시와 괄호 안에 변수명 혹은 상수명을 집어 넣으면 끝이다.

트리플 쿼우팅, 멀티 라인 문자열

  쿼우팅이란 문자열을 따옴표로 묶어 표시하는 방법으로 글에서 대화나 인용 등을 구분하기 위해 사용한다.

	let Hello = "Hi, I'm winny"
    var message = Hello
    print(message)
    // HI, I'm winny

 스위프트는 문자열을 처리할 때 큰따옴표를 사용하는 데, 이를 가리켜 더블 쿼우팅 이라고 한다.

	"Swift" // String
    "S" //Character 또는 String
    
    //자바
    "Java" //String
    'J' //Character

  스위프트에선 더블 쿼우팅으로 처리하기 때문에 문자열과 문자 타입을 확실히 구분해 주어야 한다.


스위프트에서 여러 줄의 문자열을 처리하는 방법

	//트리플 쿼우팅
	let data = """
	안녕하세요?
	오랜만이에요.
	피곤하네요!
	"""

 파이썬에서도 이러한 문법이 있는 것을 볼 수 있다

연산자

 웬만한 연산자가 다른 언어들과 비슷하기 때문에 스위프트를 공부 하면서 처음 보는 연산자만 정리해 보겠다.

닫힌 범위 연산자, 반 닫힌 범위 연산자

  닫힌 범위 연산자는 주어진 a, b를 포함하는 범위를 나타내는 연산자이다.

	1 ... 5 // 1, 2, 3, 4, 5를 나타낸다

 반 닫힌 범위 연산자는 다음과 같다

	1 ..< 5 // 1, 2, 3, 4를 나타낸다
    1 ..> 5  //(x) 오류
    

스위프트의 기본적인 문법에 대해 알아보았다!!👍🏻

profile
🧑🏻‍💻iOS

0개의 댓글