var someInt: Int = -100
var someInt: Int = 100.1 // Double 타입이라 안됨.
var someUInt: UInt = 100
someUInt = someInt // UInt에 Int 값 못 넣음.
var integer: Int = -100
let unsignedInteger: UInt = 50 // UInt 타입에는 음수값 할당 안됨.
print("integer 값: \(integer), unsignedInteger 값: \(unsignedInteger)")
print("Int 최댓값: \(Int.max), Int 최솟값: \(Int.min)")
print("UInt 최댓값: \(UInt.max), UInt 최솟값: \(UInt.min)")
let largeInteger: Int64 = Int64.max
let smallUnsignedInteger: UInt8 = UInt8.max
print("Int64 최댓값: \(largeInteger), UInt8 최댓값: \(smallUnsignedInteger)")
let tooLarge: Int = Int.max + 1 //Int의 표현 범위를 초과해서 오류남
let cannotBeNegetive: UInt = -5 //UInt는 음수가 될 수 없기에 오류남
integer = unsignedInteger //스위프트에서는 Int와 UInt는 다른 타입!
integer = Int(unsignedInteger) //Int 타입의 값으로 할당해야 함
// 진수별 정수 표현
let decimalInteger: Int = 28
let binaryInteger: Int = 0b11100
let octalInterget: Int = 0o34
let hexadecimalInteger: Int = 0x1c
10진수 : 평소 쓰는 방법이랑 같음
2진수 : 접두어 0b를 사용함
8진수 : 접두어 0o를 사용함
16진수 : 접두어 0x를 사용함
let decimalInteger: Int = 28
let binaryInteger: Int = 0b11100
let octalInterget: Int = 0o34
let hexadecimalInteger: Int = 0x1c
var someBool: Bool = true
var boolean: Bool = true
boolean.toggle() //true - false 반전
let IamJin: Bool = true
let isTimeUnlimited: Bool = false
print("시간은 무한합니까?: \(isTimeUnlimited)")
Int.random(in: -100...100)
UInt.random(in: 1...30)
Double.random(in: 1.5...5.5)
Float.random(in: -3.5...6.5)
var someFloat: Float = 3.14
var someFloat: Float = 3 // 3이란 정수는 받아들임
var someDouble: Double = 3.14
var someDouble: Double = 3 // 3이란 정수는 받아들임
someDouble = someFloat // Double 타입에 Floast 타입 못 넣음
var someCharacter: Character = "🇰🇷"
var someCharacter = "😄"
var someCharacter = "가"
var someCharacter = "A"
var someCharacter = "하하하" // Character 타입 아님
let alphabetA: Character = "A"
print(alphabetA)
// Character 값에는 유니코드 문자를 사용할 수 있다.
let commandCharacter: Character = "♥︎"
print(commandCharacter)
// 한글도 유니코드 문자에 속하므로 스위프트 코드의 변수이름으로 사용가능하다
let 한글변수이름: Character = "ㄱ"
print("한글의 첫 자음: \(한글변수이름)")
var someString: String = "하하하 😄"
someString = someString + "웃으면 복이와요" // 연산자를 이용해서 문자열을 합칠수 있다.
someString = someCharacter // String 타입에 Character 타입 수용 안됨
// 상수로 선언된 문자열은 변경이 불가함
let name: String = "Jin"
// var 키워드를 사용하여 변수를 생성했으면 문자열의 수정 및 변경이 가능함
var introduce: String = String()
// append() 메서드를 사용해 문자열을 이어붙일 수 있음
introduce.append("제 이름은")
// + 연산자를 통해서도 문자열을 이어붙일 수 있음
introduce = introduce + " " + name + "입니다."
print(introduce)
// name에 해당하는 문자의 수를 셀 수 있음
print("name의 글자 수: \(name.count)")
let unicodeScalrValue: String = "\u{2665}"
// 유니코드의 스칼라값을 사용하면 값에 해당하는 표현이 출력됨.
// \u{2665} = ♥
let hello: String = "Hello"
let Jin: String = "Jin"
var greeting: String = hello + " " + Jin + "!" // " " 띄어쓰기 삽입
print(greeting)
// 위랑 같은 코드
var greeting = hello
greeting += " "
greeting += Jin
greeting += "!"
print(greeting)
// 연산자를 통한 문자열 비교
var isSameString: Bool = false
isSameString = hello == "Hello"
print(isSameString)
isSameString = hello == "hello"
print(isSameString)
isSameString = Jin == "Jin"
print(isSameString)
isSameString = Jin == hello
print(isSameString)
// 큰따옴표 차이 비교
let helloquestion: Int = 100
let ppp: Int = 20
print("helloquestion + ppp")
var someVar: Any = "Jin" // Any로 선언된 변수는 문자열도
someVar = 50 // 정수도
someVar = 100.1 // 실수 또는 어떤 타입의 값도 할당 가능함
someAny = nil // 어떤 데이터 타입이든 들어올수 있는 Any지만 빈 값을 들어올수 없음, AnyObject도 같음