티스토리 뷰

Programming/IOS

swift 기본문법

파란크리스마스 2017. 5. 20. 12:56
728x90

swift 기본문법

//: Playground - noun: a place where people can play

import UIKit

// var str:String ="Hello, playground"
var str = "Hello, playground"
str = "Hello, "

//
let myName = "bluexmas"

// char 타입
let lastName:Character = "류"

// int 타입
let age = 38

// boolean 타입
let isAult = true

print(isAult ? "성인" : "어린이")

// 범위연산자
for i in 1...5 {
    print(i)
}

// 자료형
print(Int.max)
print(Int8.max)
print(Int16.max)
print(UInt.max)

let num:Int8 = 10

let pi = 3.14159

// 자동 형변환 없음
//print(myName + age)
print(myName + String(age))

print("\(myName) 나이는 \(age)")

// 숫자형도 형변환이 없으면 더할수 없음
print(Double(num) + pi)

// 조건문
if str == "한글" {
    print("참")
} else if str == "play" {
    print("play도 아니다.")
} else {
    print("거짓")
}

if str != "최현택" && age == 38 {
    print("최현택은 아니지만 나이는 같다.")
}

// in line 
isAult ? print("성인") : print("청소년")


// switch
switch age {
case 0..<20:
    print("청소년")
case 20..<30:
    break // switch 를 빠져나감
case 30..<40:
    print("30대")
    fallthrough // break 와 다르게 이하  case 조건 실행
default:
    print("성인")
}

// 문자열 switch
switch lastName {
case "김", "이", "박":
    print("김이박")
default:
    print("test")
}

// 배열
let nameArray:[String] = ["추신수", "박찬호"]

var i = 1
var sum = 0
while i<=10 {
    sum += i
    i += 1
    print(sum)
}

구구단 출력

// 구구단
for i in 2...9 {
    print("\n \(i) 단\n")
    for j in 1...9 {
        print("\(i) * \(j) = \(i*j)")
    }
}

배열

// 배열
var arrray2:Array<string> = ["java", "c#", "delphi"]
var nameArray:[String] = ["java", "c#", "delphi"]

// 추가
nameArray.append("javascript")

// 삽입
nameArray.insert("sql", at: 2)

// 제거
nameArray.remove(at: 1)

print(nameArray)

// 대치
nameArray[0] = "자바"

// 출력
for i in 0...2 {
    print(nameArray[i])
}

// 배열의 Count
print("배열의 Count = \(nameArray.count)")

// 일부만 출력
print(nameArray[0...1])

// 전부 삭제
nameArray.removeAll()

Dictionary

// Dictionary
var capitalDic2:Dictionary<string, string=""> = ["한국" : "서울", "영국" : "런던", "미국" : "워싱턴"]
var capitalDic = ["한국" : "서울", "영국" : "런던", "미국" : "워싱턴"]
print(capitalDic["한국"])    // Optional("서울")

for capital in capitalDic.values {
    print(capital)
}

for (country, capital) in capitalDic {
    print("\(country)  국가의 수도는 \(capital)")
}

// 추가
capitalDic["중국"] = "배이징"
print(capitalDic)

// 삭제1
capitalDic.removeValue(forKey: "미국")
print(capitalDic)

// 삭제2
capitalDic["중국"] = nil
print(capitalDic)

// 전부삭제
capitalDic.removeAll()
print(capitalDic)

함수

// 함수
func printStr() {
    print(str)
}

func sum(lns : Int, rhs : Int) -> Int {
    return lns + rhs
}

print( sum(lns: 5, rhs: 3) )

튜플(Tuple)

// 튜플(Tuple)
func getMyInfo() -> (String, Int, String, String) {
    return ("블루", 10, "010-xxx-xxxx", "bluexmas@tistory.com")
}

let (name, age, phone, email) = getMyInfo()
print(name)
print(age)
print(phone)
print(email)

구조체

클래스와 다르게 구조체는 기본 자료형(int, boolean)처럼 대입시 별도의 메모리가 할당 되고, 클래스처럼 상속을 받을 수 없습니다.

// 구조체
struct UserInfo {
    var name : String
    var age : Int
    var email : String
    
    // swift 제고 초기화 함수
    init(name : String, age : Int, email : String) {
        self.name = name
        self.age = age
        self.email = email
    }
    
    func showInfo() {
        print("이름 : \(name), 나이 : \(age) 메일주소 : \(email)")
    }
}

var userInfo1 = UserInfo(name : "블루", age : 10, email : "bluexmas@tistyory.com")
var userInfo2 = UserInfo(name : "레드", age : 10, email : "bluexmas@tistyory.com")
userInfo1.showInfo()

var userArray:[UserInfo] = []
userArray.append(userInfo1)
userArray.append(userInfo2)

for info in userArray {
    info.showInfo()
}
댓글
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/03   »
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
31
글 보관함