Skill Sets/Swift

[Swift] 상수와 변수

코코자장자장 2021. 11. 24. 00:23

Swift의 기본부터 공부를 시작하면서 배운것을 천천히 정리하면서 포스팅을 이어나갈 예정입니다!

 

Swift 공식 문서에 따르면 C언어데 대한 경험이 있는 당신이라면 스위프트의 문법이 익숙할것이다 라고하는데....


https://www.swift.org/

 

Swift.org

Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.

www.swift.org

 

저는 사람이 아닌건지 C를 6년 써오면서도 C에 대한 감각이 부족한건지 전혀 익숙하지 않았습니다 ㅠㅠㅠ

 

main() 함수도 필요없고 세미콜론(;)도 필요없다는데 땀(;)을 많이 흘리는 사람으로써 먼가 불편하고 어색함이 있습니다...

 

다들 아시겠지만 혹시모르니 Korean Translation 문서 링크도 달아드릴게요!

 

https://bbiguduk.gitbook.io/swift/

 

The Swift Programming Language - Swift

The Swift Programming Language

bbiguduk.gitbook.io

 

 


 

본격적으로 제목의 내용에 대해서 이야기 해보시죠!

 

공식 문서에 따르면 let을 이용해서 상수를 만들려고 var를 이용해서 변수를 만들라고 합니다!

 

import Foundation


// 상수
// let 상수명 : 데이터 타입 = 값
let a: Int = 100
let a2 = 100

// 변수
// var 변수명: 데이터 타입 = 값
var b: Int = 200
var b2 = 200

var c: Float = 10.0
var c1 = 10.0

var d: Character = "A"
var d1 = "A"


상수와 변수는 할당한 데이터 타입과 같은 값을 가져야합니다! 

Int로 할당해놓고 1.1 넣으면 안된다는 뜻입니다.

 

그러면 에러를 직면하게 되겠죠?

 

하지만 우리는 항상 데이터 타입을 명시적으로 표현해줄 필요는 없습니다!(타입 추론(type inference)이라고 합니다)

 

어잉? 벌써부터 C에는 없던 기능이죠???

 

컴파일러가 알아서 당신이 원하는 타입으로 맞춰준다는 뜻이죠 ㅎㅎ 하지만 단점도 있더라구요!

 

10.0으로 데이터를 초기화 해놓으면 Float가 아니라 Double로 데이터 타입이 잡혀버립니다! 띠용이죠?

 

안정성을 위해서 큰 데이터 타입이 잡히나 봅니다!

 

이게 다가 아닙니다! 

 

"A"를 컴파일러에 맡겨버리면 Character가 아니라 String에 때려박아 버립니다 ㅎㅎ

보시다시피 메소드가 String 메소드이네용!

 

이처럼 원하지 않는 데이터 타입으로 초기화 될 수 있으니 조심하세요!

 


 

추가로 데이터 타입은 기본적으로 첫 글자가 대문자입니다. 소문자로 쓰고 자동완성 시켜버리면 된다만 뭔가 어색하네요. 

 

그래서 그런지 아직까지 자동완성에 의존하지 않고 제가 직접 대문자로 써서 하고 있습니다!

 

Int 64bit 정수형

UInt : 부호가 없는 64bit 정수형

Float : 32bit 부동소수점

Double : 64bit 부동소수점

Bool : true, false 값

Character : 문자

String : 문자열

 

기본으로 제공되는 데이터 타입입니다. 하드웨어에 따라 변경되는 C랑 달리 이것은 고정인듯합니다...! 참 감사하죠 ㅠㅠ

 

오늘은 여기까지로 마무리 짓겠습니다. 좋은 하루 되세요!