티스토리 뷰

swift 의 간단한 자료형

swift 는 변수형 은 var 로 상수형은 let로 자료형을 선언하여 주면 자동적으로 그 타입을 추론하여 넣어주는 방식으로 동작하고 있습니다
예를들어 아래와 같은 코드를 보면

var number1 = 1

var number2:Int = 1

number 1과 number2는 둘다 정수형 타입으로 같은 값을 참조한다고 이야기 할 수 있습니다. 마찬가지로

var string1 = "hello"
var string2:String = "hello"

위의 string1 과 stirng2도 마찬가지로 같은 “hello”문자열을 나타내는 변수명에 해당됩니다.

그렇다면 swift의 자료형은 매우 유동적이고 타입에 제한이 없는가?

정답은 그와 아주 반대로 swift는 아주 강하게 타입을 제한하고 있습니다.

자바의 경우

// "helloworld"
String message1 = "hello" + "world";
// "hello2"
String message2 = "hello" + 2;
// "300hello"
String message3 = 100 + 200 + "hello";

위와같이 형 변환에 자유롭습니다.
message1 의 형태는 문자열 + 문자열의 경우로
두 문자열을 단순하게 나열해 주는것 으로 연산을 처리합니다.

두번째 message2의 경우에는
문자열 hello와 정수형 2가 결합하게 되는데 JAVA는 자동으로 정수형 2를
문자열 "2"로 형 변환(casting) 시켜 그대로 문자열에 붙여주게 됩니다.

세번째 message3의 경우에는
처음 나오게 되는 정수형 100과 200 의 덧셈(+) 연산은 정수끼리의 합연산 즉 연산값이 300으로 나오게 되며,
이어지는 300 + "hello" 의 연산에서는 300을 문자열로 강제 casting 하여
300hello 라는 최종적인 결과물을 보여주게 됩니다.

스위프트의 경우에

// "helloworld"
var swift1 = "hello" + "world"
// 300
var swift2 = 100 + 200
// 에러
var swift3 = "hello" + 2

문자 + 문자는 두 문자열의 합으로
숫자 + 숫자는 두 숫자의 덧셈값으로 계산하지만
문자 + 숫자의 연산은 에러를 내게 됩니다.
사용자는 숫자를 문자열에 덧붙이기 위해서는 둘다 어느 한쪽의 타입으로 통일되어야만 이루어 지게 됩니다.
덧셈을 하는 대상의 타입이 자료형으로 정확하게 명시되어야 가능하게 되는것이 swift의 특징 입니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함