Swift 1. 스위프트 시작

 Swift 1. 스위프트 시작



1. 기본 명명 규칙


- 변수, 상수, 함수, 메서드, 타입 등의 이름은 유니코드에서 지원하는 어떤 문자(영어, 한글, 한자, 숫자, 이모티콘 등) 라도 사용할 수 있다. 다만 아래의 경우와 같은 경우 사용할 수 없다

    * 스위프트에서 미리 정한 예약어나 키워드

    * 해당 코드 범위 내에서 미리 사용되는 기존 이름과 동일한 이름

    * 연산자로 사용될 수 있는 기호 (+, -, *, /)

    * 숫자로 시작하는 이름

    * 공백이 포함된 이름

- 함수, 메서드, 인스턴스 이름은 첫 글자를 소문자로 사용하는 소문자 카멜케이스를 사용함

- 클래스 구조체, 익스텐션, 프로토콜, 열거형 이름은 타입의 이름이기 때문에 첫 글자를 대문자로 사용하는 대문자 카멜케이스를 사용함

-대소문자를 구별함



* 예약어

프로그래밍 언어에서 미라 사용하기로 약속한 단어

식별자로 사용할 수 없는 단어



* 키워드 

프로그래밍 언어 문법의 일부

특별한 의미가 있는 단어

스위프트의 키워드는 대부분 예약어



* 세미콜론(;)을 명령 구문 뒤에 붙이는 것은 선택사항. 붙이지 않는 것을 권장





2. 콘솔 로그


* 로그 : 애플리케이션의 상태나 내부 로직의 흐름을 관찰할 수 있도록 출력한 정보


* 콘솔 로스 : 디버깅 중 디버깅 콘솔에 보여줄 로그

스위프트에는 print()와 dump() 함수를 사용해서 콘솔 로그를 출력



- print()

콘솔 로그를 남기는 용도

() 안의 내용을 콘솔에 출력

로그를 출력한 뒤 자동으로 줄바꿈 문자(\n)를 삽입

print( [출력할 내용], [출력할 값을 분리해서 표시하는 문자열 (기본값: " ")],

 [출력하는 내용 끝에 붙일 문자열(기본값 : "\n")] )


- dump()

print() 함수와 마찬가지로 콘솔에 로그를 출력하는 함수

print() 함수 보다 더 자세한 정보를 출력해줌




* 예시 - Person class로 만든 객체를 print() 함수와 dump()함수로 출력

class Person{

    var name : String = ""

    var age : Int = 0

}



var man : Person = Person()

man.name = "Tom"

man.age = 25



print(man)

print("-------------------------")

dump(man)










- 문자열 보간법

변수나 상수등의 값을 문자열 내에 나타내고 싶을 때 사용

문자열 내에     \(변수나 상수)    형태로 표기하면 이를 문자열로 치환해서 넣어줌




* 예시 - 이름 출력 코드

let a : String = "John"

let b : String = "Bob"


print("My name is \(a)")

print("My name is \(b)")









3. 주석

소스 코드에 정보를 남기는 목적으로 사용

주로 코드를 다시 봤을 때 필요한 중요 메모나 다른 프로그래머에게 설명하기 위한 메모등을 주석으로 남김


* 퀵헬프

Xcode에서 말풍선의 형태로 레퍼런스 문서의 요약된 내용을 보여줌

옵션키를 누른 상태로 퀵헬프를 보기 원하는 항목을 클릭하면 됨












마크업 문법에 맞춰서 메서드, 클래스, 변수등에 주석을 작성하면 퀵헬프로 다른 프로그래머가 해당 내용을 확인할 수 있음




- 주석 남기기

한 줄 주석




여러 줄 주석 






중첩 주석 - 여러 줄 주석 안에 여러줄 주석이나 한 줄 주석을 넣음











- 마크업 문법을 활용한 문서화 주석

변수, 상수, 클래스, 메서드, 함수, 열거형 등을 설명하고자 하는 경우 일정한 마크업 형식에 따라 주석을 작성하면 퀵헬프를 통해 그 내용을 확인할 수 있음

설명하고자 하는 대상 바로 위에 작성


/// : Declaration 부분에 표기1됨

/** **/ : Description 부분에 표기됨

코드간에 한 줄 띄우기 : 줄바꾸기

'-', '+', '*'  : 원형 글머리 기호

숫자 : 번호로 글머리 기호 매겨줌. 숫자와 상관없이 순서대로 1부터 매겨줌

--- : 바를 세 개 이상 사용하면 긴 줄로 문단을 나눔

*문자열* : 텍스트를 기울임

**문자열** : 텍스트를 굵게 표시

[링크이름](https://링크 주소) : 링크 이름을 클릭하면 링크 주소로 이동

네칸 이상 들여쓰기 or ```` : 코드 블록

> : Note


Precondition, Postcondition, Requires, Invariant, Complexity, Important, Warning, Author, Authors, Copyright, Date, SeeAslo, Since, Version, Attention, Bug, Experiment, Note, Remark, ToDo

위의 키워드를 사용해서 적절한 정보 제공 가능 (- 키워드:  형식)





4. 변수와 상수

프로그램에서 사용되는 데이터를 메모리에 임시로 저장하는데 이때 특정 데이터 타입에 해당하는 값의 이름



- 변수

생성 후 데이터값 변경 가능

var 키워드 사용해서 선언

var [변수명] : [데이터 타입] = [값]

데이터 타입은 생략가능하고 생략하면 컴파일러가 변수값의 데이터 타입을 추론 -> 오류가 발생할 수 있으므로 권장하지 않음


* 예시

import Swift


var name : String = "Bob"

var age : Int = 25

var job = "Programmer" // 타입 추론이 사용됨

var height : Double = 180.2


// 변수는 값을 바꿀 수 있음

name = "Tom"

age = 21


print("My name is \(name). I'm \(age).\nMy job is \(job)")







- 상수

생성 후 데이터 값 변경 불가능 -> 에러 발생

let 키워드사용해서 선언

let [변수명] : [데이터 타입] = [값]

변수와 마찬가지로 데이터 타입을 생략할 수 있음



* 예시

import Swift


let name : String = "Bob"

let age : Int = 25

let job = "Programmer" // 타입 추론이 사용됨

let height : Double = 180.2


// 상수는 데이터 값을 바꿀 수 없어서 에러 발생

name = "Tom"

age = 21


print("My name is \(name). I'm \(age).\nMy job is \(job)")







* 상수를 사용하는 이유

가독성 : 값이 변하지 않았다는 것을 주석이나 API 문서등을 살펴보지 않아도 직관적으로 알 수 있음

특정 값에 특별한 의미를 부여할 경우 : 변하지 않아야 하는 특정 값이 있을 경우 특징을 반영한 이름으로 상수를 선언하며 차후에 직관적으로 읽기도, 사용하기도 편리






댓글

이 블로그의 인기 게시물

Spring Boot 6. 계시판 프로젝트

Spring Boot 2. Maria 데이터베이스 & Spring Data JPA

Django 10. DB 연동