쓰다 보니 말이 길어질 거 같아 2편으로 시작!!
1편을 안보고 왔으면 보고 오는 걸 추천합니다 🙂
Swift 변수와 상수 1
사실 반복문 쓰기 전에 변수랑 상수 먼저 설명해야 이해하기 쉬웠을 텐데 뭐 지금이라도 쓰는 게 어디야 🙂 변수랑 상수의 개념은 다들 알거라 생각하고 간단하게 넘어가야지라고 하기엔 내가
sheep1sik.tistory.com
1. 변수와 상수의 이름 정의하기
스위프트에서 사용할 수 있는 변수와 상수의 이름은 그 범위가 무척 넓다.
영단어 대/소문자와 숫자 일부, 특수 문자 몇 개만 허용하는 다른 언어에 비교해보면 상당히 자유도가 높은 편에 속한다.
📝 솔직히 한자, 아라비아 숫자, 이미지용 바이너리 코드 이런 거를 쓸 일이 있을까..? 라는 생각이 있기도 하고 재미로는 해볼 거 같다.
스위프트에서 변수와 상수의 이름을 정의할 때 지켜야 하는 규칙에 대해 알아보자
1 - 1 알파벳과 한글 자음 및 모음, 아라비아 숫자를 사용할 수 있으며, 특수기호나 한자, 이미지용 바이너리 코드까지 사용할 수 있다.
// 영어 및 숫자, 언더바로 정의
var str = "문자열"
var initInt34 = 56
var init_Int = 123
// 한글 및 한글 초성, 중성으로 정의
var 인사 = "안녕"
var ㄱㄴㄷㄹㅁㅂ = "가나다라마바"
var ㅏㅑㅓㅕㅗㅛ = "아야어여오요"
// 한글 초성과 알파벳을 혼용하여 정의
var aㄴㅇf = 10.09
let ㅂb0419 = 990419
// 특수 기호를 사용하여 정의
var ㉮ = 123
var ₩ = true
// 이미지 바이너리를 사용하여 정의
var 🧸 = "A"
let 💻 = "B"
// 한자를 이용하여 정의
var 彬 = "b2"
var 植 = "sik"
// 위 예시를 모두 섞어서 정의
var ㄱaB다45㉮🧸彬 = "짬뽕"
이렇게 정리해 보면 진짜 신기한 것도 다 되는 것 같다.
이처럼 스위프트는 변수나 상수명으로 다양한 문자와 기호, 이미지까지도 사용할 수 있다.
하지만 '할 수 있다'와 '한다'는 엄연히 다르다.
이런 게 가능하다고 해서 실무에서 영어, 숫자, 밑줄 이외에 다른 문자나 기호를 쓰는 사람은 없을 것이다.
만약 다른 문자나 기호를 쓴다면 어떻게 될지 아래 코드를 보면서 상상해 보자.. 끔찍하다...🤬
class 🐶🐶🐶🐶 {
func 🐱🐱(🐭:Int, 🐹:Int) -> Int{
return 🐭 + 🐹
}
}
var 🐻 = 7
var 🐼 = 🐻 + 15
var 🐶 = 🐶🐶🐶🐶()
print(🐶.🐱🐱🐱(🐭:🐻,🐹:🐼))
이런 끔찍한 코드를 상상해 보자... 나는 절대 이해 못 한다.
반대로 일반적인 코드를 봐보자.
class Wedding {
func add(man:Int, woman:Int) -> Int {
return man + woman
}
}
var Sik = 15
var Bin = Sik + 4
var W = Wedding()
pring(W.add(man:Sik, woman:Bin))
두 코드를 비교해 보면 앞서의 코드가 미친 짓이라는 걸 알 수 있다. 이처럼 이미지나 특수문자 등 일반적이지 않은 문자를 사용한 코드는 작성하기도 힘들고, 유지보수 하기에는 정말 엄두가 나지 않고, 무엇보다 코드를 읽을 수 없다.
📝 실무에서 코드를 이렇게 짜놓았다면 바로 당일날 쫓겨나지 않을까...
그냥 스위프트에 이런 기능이 있다는 건만 알아두자!!!!
📝 차라리 모르는 게 나을 수도?!
1 - 2. 연산자와 혼동할 수 있는 [ +, -, *, / ] 및 공백은 변수, 상수명에 사용할 수 없다. 단, _(언더바)는 사용 가능
// 연산자와 공백은 면수나 상수명에 들어가면 안 됨
var abc+d = "abc Plus d" // 더하기 연산자라 불가능
let abc-d = "abc Minus d" // 빼기 연산자라 불가능
let abc d = "abc Space d" // 변수명이 어디까지인지 구분할 수 없어서 불가능
// 언더바는 예외적으로 사용 가능
var abc_d = "abc Underbar d"
말 그대로 연산자와 변수명에 혼동이 있으면 안 되기 때문에 사용 불가능하다.
1 - 3. 스위프트에서 예약어나 키워드로 등록되어 있는 단어는 변수나 상수명에서 사용할 수 없다. 단, 대소문자를 바꾸어 사용하는 것은 가능
// 혀용되지 않는 경우
var class = 1 // X , 'class'는 클래스 정의를 위한 키워드
var enum = 2 // X , 'enum'은 열거형 정의를 위한 키워드
var protocol = 3 // X , 'protocol'은 프로토콜 정의를 위한 키워드
var as = 4 // X , 'as'는 타입 캐스팅을 위한 키워드
var extension = 5 // X , 'extension'은 확장을 위한 키워드
var struct = 6 // X , 'struct'는 구조체 정의를 위한 키워드
// 허용되는 경우
var Class = 1 // O
var Enum = 2 // O
var Protocol = 3 // O
var As = 4 // O
var Extension = 5 // O
var Struct = 6 // O
스위프트에서 기능적으로 특별한 의미를 가지는 키워드들이다.
컴파일러의 오작동을 피하기 위해, 이들은 변수나 상수명에 사용할 수 없다. 단 아래처럼 키워드 일부분을 대문자로 변경하면 사용할 수 있는데 이는 스위프트가 대소문자를 문법적으로 구분하기 때문이다.
1 - 4. 변수, 상수명에 첫 번째 자리에 숫자가 올 수 없다.
// 첫 번째 자리에는 숫자를 사용할 수 없음
var 1abc = 123 // X
var 2abc = 456 // X
// 두 번째 자리부터는 숫자 사용 가능
var a123dg = 123 // O
var b234gi = 234 // O
변수와 상수의 이름에는 네 가지 정도의 규칙이 적용된다.
이 규칙만 준수하면 그 범위 내에서는 자유롭게 변수와 상수의 이름을 작성하는 게 가능할 것이다.
📝 이렇게 공부해 놓고 변수랑 상수명 쓸 때 제대로 안 지키면 나는 문제야 문제🎶
📝 다음 공부할거는 자료형!! 복습겸 정리해야지
'메모장' 카테고리의 다른 글
Swift 기본 자료형 2 (1) | 2023.03.06 |
---|---|
Swift 기본 자료형 1 (2) | 2023.03.04 |
Swift 변수와 상수 1 (1) | 2023.03.02 |
Swift 반복문 [ while 편 ] (5) | 2023.02.28 |
Swift 반복문 [ for - in 편 ] (5) | 2023.02.27 |