iOS

[iOS 프로그래밍] 문법

코딩하는둥이 2023. 9. 11. 15:41

Swift

 : Apple 플랫폼에서 사용할 수 있는 직관적인 프로그램 언어

 : 문법 사이트 

 

The Swift Programming Language (한국어) - Swift

The Swift Programming Language (한국어)

bbiguduk.gitbook.io

 : 스타일 가이드

https://github.com/swift-kr/swift-style-guide-raywenderlich/blob/master/ko_style_guide.md         

 

값 출력 해보기                    

var x : Int = 10;
print(x)
var x : Int;
x= 10;
print(x)

// error: '=' must have consistent whitespace on both sides x= 10; 
// '=' 양쪽에 일관된 공백

 

 

데이터 타입

 자료형

var x = 10   // 초기 값이 있을 때는 : Int를 안 적어도 된다. =>  타입 추론(type inference)
print(type(of:x)) // x의 타입 확인
let s = MemoryLayout.size(ofValue: x)
let t = MemoryLayout<Int>.size
print(s, t)


//Int
// 8 8

 타입 추론

var welcomeMessage: String //초깃값이 없으므로 자료형을 직접 표기함
let myAge = 25 // myAge가 Int형으로 타입 추론됨
let pi = 3.14159 // pi는 Double형으로 추론됨
let anotherPi = 3 + 0.14159 // anotherPi는 Double형으로 추론됨

 

 

Documentation

 

docs.swift.org

 Print 사용하는 방법

  : items 

      인쇄할 항목이 0개 이상

     separator

       각 항목 사이에 인쇄할 문자열

     terminator

        모든 항목이 인쇄된 후 인쇄할 문자열

print("1, 2, 3, 4"); // 1 2 3 4 

print(1, 2, 3, 4, 5, separator: " ... ") /// 1 ... 2 ... 3 ... 4 ... 5 ...

for n in 1...5 {
    print(n, terminator: "")
} // 12344

 

 1) Int (정수 데이터 타입)

     :  정수(소수점이 없는 수 )를 저장할 때 사용

      \출력하고 싶은 변수/ 상수

var x : Int = 10
print(x);
print("x");
print("\(x)");
print("값은 \(x)입니다.");
print("Int32 Min = \(Int32.min) Int32 Max = \(Int32.max)");

//10
//x
//10
//값은 10입니다.
//Int32 Min = -2147483648 Int32 Max = 2147483647

 

2) Double (부동 소수점 데이터 타입) 

    : 소수점이 있는 숫자

     float 타입

        : 32비트로 부동 소수점 수를 저장(소수점 6자리)

     double

         : 64비트로 부동 소수점 수를 저장(소수점 15자리)

var myWeight : Double
var myWeight : Double = 58.5 
//초깃값 58.5이 있으므로 : Double은 일반적으로 생략

 3) Bool (부울 데이터 타입)

    : 참 또는 거짓(1 또는 0) 조건을 처리할 데이터 타입

var orangesAreOrange : Bool
var orangesAreOrange : Bool = true
//초깃값 true가 있으므로 : Bool은 일반적으로 생략함

 

 4) Character(문자 데이터 타입)

 : 문자, 숫자 문장 부호, 심볼 같은 유니코드 문자 하나를 저장

    var 변수명 : Character="초기값";   // String이 되기 때문에 Character를 생략하면 안된다. 

var myChar1 : Character
var myChar2 : Character = ":"
var myChar3 : Character = "X"

5) String (문자열 데이터 타입)

     : 단어나 문장을 구성하는 일련의 문자

var userName : String = "Kim" // : String 생략하는 것이 일반적임
var age = 20
var message = "\(userName)의 나이는 \(age)입니다."
print(message) // Kim의 나이는 20입니다.

6) 특수 문자/ 이스케이프 시퀀스

\n // 개행
\r // 캐리지 리턴(carriage return)
\t // 수평 탭
\\ // 역슬래시
\" "\
// 큰따옴표(문자열 선언부에 큰따옴표를 쓰고 싶을 경우에 사용됨)
\' '\
//  작은따옴표(문자열 선언부에 작은따옴표를 쓰고 싶을 경우에 사용됨) 
\u{nn} // nn 위치에 유니코드 문자를 표현하는 두 개의 16진수가 배치되는 1바이트 유니코드 스칼라
\u{nnnn} // nnnn 위치에 유니코드 문자를 표현하는 네 개의 16진수가 배치되는 2바이트 유니코드 스칼라
\U{nnnnnnnn} // nnnnnnnn 위치에 유니코드 문자를 표현하는 네 개의 16진수가 배치되는 4바이트 유니코드 스칼라

 

변수 var

   : 프로그램에서 사용될 데이터를 저장하기 위한 메모리 공간

     변수에 할당된 값은 변경 가능

var myVariable = 10 // :Int
var x = 0.0, y = 0.0, z = 0.0

 

상수 let

  : 데이터 값을 저장하기 위하여 메모리 내의 명명된 공간을 제공한다는 점에서 변수와 비슷하다

     어떤 값이 한번 할당되면 이후에 변경될 수 없다.

     나중에 코드에서 값을 할당할 수 있다.

var myVariable = 10 // :Int
var x = 0.0, y = 0.0, z = 0.0

  

 튜플 Tuple

    :  여러 값을 하나의 개체에 일시적으로 묶는 방법

       조정되는 항목들은 어떠한 타입도 될 수 있으며, 저장된 값들이 모두 동일한 타입일 필요도 없다.

       ,로 구분하고 (),[]로 묶는다.

let myTuple = (10, 12.1, "Hi")
var myString = myTuple.2
print(myString) // Hi

한 줄의 코드로 튜플의 모든 값을 추출하여 변수 또는 상수에 할당

let myTuple = (10, 12.1, "Hi")
print(type(of:myTuple)) // (Int, Double, String)
let (myInt, myFloat, myString) = myTuple;
print(myInt, myFloat, myString)  // 10 12.1 Hi

튜플의 값을 선택적으로 추출하는 데 사용될 수 있으며, 무시하고 싶은 값에 밑줄을 사용하면 그 값은 무시 가능하다

var (myInt, _, myString) = myTuple //12.1 무시

튜플을 생성할 때 각 값에 이름을 할당할 수도 있음

let myTuple = (count:10, lenght:12.1, message:"Hi"); //(count: Int, lenght: Double, message: String)
print(type(of:myTuple))
print(myTuple.0, myTuple.count) //10 10

 =>  함수에서 여러 값들을 한 번에 반환하는 것

 

옵셔널 

 : 값을 반환할 때 오류가 발생할 가능성이 있는 값은 옵셔널 타입을 객체로 감싸서 반환합니다.

   

var y : Int? = 10
print(y, y!);
// Optional(10) 10

'iOS' 카테고리의 다른 글

[iOS] 함수와 매서드  (0) 2023.10.15
[iOS] 클로저 알아보기  (0) 2023.10.06
[iOS] 1급 객체(1급 시민) 알아보기  (0) 2023.10.04
[iOS] 기초문법  (0) 2023.09.25
[iOS] 문법 - 옵서널 타입  (0) 2023.09.18