반응형
Greensky0026
삽질러의 대환장 공사판
Greensky0026
전체 방문자
오늘
어제
  • 분류 전체보기 (241)
    • Language (56)
      • JAVA (13)
      • Swift (38)
      • Kotlin (4)
      • Dart (0)
      • PHP (0)
      • JavaScript (1)
    • IDE & Framework (92)
      • Spring (10)
      • Android (48)
      • iOS (8)
      • NodeJS (1)
      • CodeIgniter (3)
      • Flutter (1)
      • 분류중 (18)
    • Infra (8)
    • Database (12)
    • VCS (4)
    • Debug Log (34)
      • java (7)
      • swift (3)
      • Android (9)
      • Web (7)
      • 삽질기 (7)
    • Others (19)
      • 코딩테스트 풀이 (0)
      • IT 이야기 (18)
    • 쉼터 (2)
    • 개발공부 (14)
      • Network (1)
      • 자료구조와 알고리즘 (2)
      • Code design (8)
      • ETC (1)
      • 아카이브 (1)

블로그 메뉴

    공지사항

    • 프로그래머스 코딩 테스트 관련글 비공개 처리

    인기 글

    태그

    • 프로그래밍
    • IT
    • kotlin
    • JSP
    • level1
    • Android
    • 타입
    • 공부
    • xcode
    • 예제
    • ios
    • 프로그래머스
    • 개발
    • 구축
    • swift
    • Java
    • reduce
    • 코딩테스트
    • swfit
    • map

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    Greensky0026

    삽질러의 대환장 공사판

    Swift 기초 개념 및 데이터 타입
    Language/Swift

    Swift 기초 개념 및 데이터 타입

    2021. 3. 8. 23:22
    반응형

    상수와 변수

    상수 선언 let 이름: 타입 = 값

    • 상수는 이름그대로 선언한 값 고정

    변수 선언 var 이름: 타입 = 값

    • 변수는 이름그대로 값 변경 가능

    ! 값이 명확하다면 타입은 생략할 수 있다. 그러나 나중에 할당하려고 하는 상수나 변수는 타입을 명시하여야 한다.

     

    var name:String
    let age:Int
    
    name = "녹색하늘"
    age = 20
    print("나의 이름은 \(name)입니다") //나의 이름은 녹색하늘입니다
    
    name = "하늘"
    print("나의 이름은 \(name)입니다") //나의 이름은 하늘입니다

    기본 데이터 타입

    • Int : 64비트 정수형

    • UInt : 64비트 양의 정수형

    • Float : 실수타입 32비트 부동소수형 : 소수점이하 6자리

    • Double : 실수타입 64비트 부동소수형 : 소수점이하 15자리

    • Character : 문자타입

    • String : 문자열 타입

    //여러줄 문자열사용 가능. 
    //겹따옴표 세개인 줄 (처음과 끝)에서 줄바꿈을 해야 오류가 나지 않음
    var manyString = """
    이것은
    아주긴
    문자열
    입니다
    """
    
    print(manyString)
    /*
    이것은
    아주긴
    문자열
    입니다
    */

     

    • Any : swift의 모든 타입을 지칭
      단, any는 float 및 double타입이 아니므로 명시적 형변환 후에 할당가능.
    var val: Any = 100
    val = "kim"
    val = 12.125442
    
    var fl: Float = val // error
    var dou : Double = val // error

     

    • AnyObject : 모든 클래스 타입을 지칭하는 프로토콜
      단, 클래스의 인스턴스만 할당 가능
    class aClass{}
    var obj: AnyObject = aClass
    
    obj = 124 //error

     

    • nil : null과 같은 의미. 부재를 나타낸다.

    컬렉션 타입

     

    • Array : 순서가 있는 리스트 컬렉션
    //Array 생성
    var integers: Array = Array() //에러
    var integers2: Array = [] //에러
    //타입은 반드시 명시해 주어야 합니다.
    var integers3: [Int] = Array()
    var integers4: [Int] = [Int]
    var integers5: [Int] = []
    var integers6: [Int] = [Int]
    
    //Any를 이용해 여러 자료형을 넣을 수 있습니다.
    var anyArr: [Any] = [1,2,"가","나"]
    
    //크기가 정해진 배열을 만들수도 있습니다.
    var repeatArr= [Int](repeating: 0, count: 3) //[0,0,0]
    
    //멤버 추가
    var a : [1,2] //[1,2]
    a.append(3) //[1,2,3]
    a. += [4,5] //[1,2,3,4,5]
    
    //멤버 접근
    a[0] //1
    a[0] = 0 // a = [0,2,3,4,5]
    
    //멤버 포함여부 확인 ture/false로 반환
    a.contains(100) // false
    a.contains(2) //true
    
    //멤버 수 확인
    a.integers.count // 5
    
    //멤버 삭제
    a.remove(at: 0) // a = [2,3,4,5]
    a.removeLast() // a = [2,3,4]
    a.removeAll() // a = []

     

    • Dictionary : 키-값의 쌍으로 이루어진 컬렉션
    //Dictionary 생성
    var dic: Dictionary  = Dictionary() //error, 타입은 반드시 명시
    var dic: Dictionary  = [:] //error, 타입은 반드시 명시
    
    var dic : Dictionary = [String: Int]()
    var dic: [String: Int] = Dictionary()
    var dic: [String: Int] = [String: Int]()
    var dic: [String: Int] = [:]
    var dic = [String: Int]()
    
    //값 할당 (변경도 동일)
    dic["apple"] = 4000
    dic["banana"] = 2500
    print(dic) // ["apple": 4000, "banana" = 2500]
    
    //제거
    dic.removeValue(forKey: "apple")
    dic["banana"] = nil
    print(dic) // [:] 

     

    • Set : 순서없이 멤버가 유일한 컬렉션
    //Set 생성 (반드시 타입을 명시해 주어야 합니다)
    var set1 :Set = Set<String>()
    var set1 = Set<String>()
    var set1 : Set<String> = []
    
    //생성과 동시에 초기화
    var set1 : Set<String> = [5,4,3]
    var set1 : Set = [5,4,3]
    
    //값 추가
    set.insert(2)
    print(set1) //출력시 순서와 상관없이 출력됨
    set.insert(2) // Set은 중복을 허용하지 않으므로, 변화 x
    
    //제거
    set1.remove(2)
    set1.reamoveAll()
    
    //집합연산
    let set1 : Set = [1,2,3,4]
    let set2 : Set = [3,4,5,6]
    
    var uSet : Set = set1.union(set2) //합집합
    print(uSet) // [3, 4, 6, 5, 1, 2]
    
    var iSet : Set = set1.intersection(set2) // 교집합
    print(iSet) // [4, 3]
    
    var symSet : Set = set1.symmetricDifference(set2) //합집합-교집합
    print(symSet) // [6, 5, 1, 2]
    
    var subSet : Set = set1.subtracting(set2) // 여집합
    print(subSet) //[1, 2]
    

     

     

     

     

     

     

    도움이 엄청나게 된 사이트들

    yagom.net/

     

    야곰닷넷 - yagom.net

    iOS 개발자들의 놀이터, 배움터, 모임터, 기록보관소 야곰닷넷입니다.

    yagom.net

    https://zeddios.tistory.com/114

     

    Swift3 ) Array사용해보기(1/2)

    안녕하세요! 오늘은 Array(이하 배열)를 사용해봅시다. ㅎㅎ배열은 유명한 언어(C, C++, Java등..)에는 다 있으니 너무너무 익숙하시겠지만, 새로운 언어를 배울 때는 위 언어들을 다 잊어주세요 :) Swi

    zeddios.tistory.com

    반응형

    'Language > Swift' 카테고리의 다른 글

    Swift 간단한 사칙연산  (0) 2021.03.09
    Swift 함수의 선언과 호출  (0) 2021.03.09
    Swift API 설계 지침  (0) 2021.03.08
    Swift mark down 활용하기  (0) 2021.03.08
    Swfit란 뭘까?  (2) 2021.03.07
      'Language/Swift' 카테고리의 다른 글
      • Swift 간단한 사칙연산
      • Swift 함수의 선언과 호출
      • Swift API 설계 지침
      • Swift mark down 활용하기
      Greensky0026
      Greensky0026
      점이 모여 선이 된다. 내 삽질도 언젠간 거대한 지하 도시가 되겠지!

      티스토리툴바