기본 명명 규칙
- 함수, 메서드, 인스턴스 이름은 첫 글자를 소문자로 사용 (소문자 카멜케이스)
- 클래스, 구조체, 익스텐션, 프로토콜, 열거형 이름은 타입의 이름이므로 첫 글자를 대문자로 사용 (대문자 카멜케이스)
- 대소문자를 구별 (Var와 var를 다르게 인식)
- 변수, 상수, 함수, 메서드 타입 등의 이름은 유니코드에서 지원하는 어떤 문자(한글, 한자, 영문, 숫자, 이모티콘 등)라도 사용 가능
하지만 예외의 경우 사용할 수 없기 때문에 영어, 숫자, 밑줄(_) 이외에 다른 문자나 기호를 쓰지않는게 좋음
예외 경우
- 스위프트에서 미리 정한 예약어 또는 키워드 사용 불가, 대소문자 바꿔서 사용 가능
예약어 : 프로그래밍 언어에서 미리 사용하기로 약속한 단어로, 식별자로 사용할 수 없는 단어
키워드 : 프로그래밍 언어 문법의 일부로, 특별한 의미가 있는 단어
스위프트의 키워드는 대부분 예약어이며, 일부 예약어의 경우 강세표(backquote``)를 사용하여 이름으로 사용할 수 있다.
class `let` {}
let `self`: `let` = `let`()
func `var`() {}
var class = 1
var enum = 2
var struct = 3
var extension = 4
var protocol = 5
var as = 6
var Class = 1
var Enum = 2
var Struct = 3
var Extension = 4
var Protocol = 5
var As = 6
- 해당 코드 범위 내에서 미리 사용되는 기존 이름과 동일한 이름
let hansol: String = "hansol"
let hansol: String = "test"
- 연산자로 사용될 수 있는 기호(+, -, *, /), 단 (_)언더바는 사용 가능
let test+: String = "test"
let -test: String = "test"
let te*st: String = "test"
let tes/t: String = "test"
var abc_t = "abc underbar t"
- 숫자로 시작하는 이름
var 1abc = 123
var 2bcd = 345
var a123bc = 123
var b2cd = 345
- 공백이 포함된 이름
let te st: String = "test"
var abc t = "abc space t"
글이 많은 도움이 되었습니다, 감사합니다.