[swift] 기본문법(1)
ios/swift

[swift] 기본문법(1)

import UIKit

// 변수타입
let constant = 100// 상수 => 자바스크립트에서는 변수이므로 헷갈리지 말자
var variable = 100// 변수


// 데이터 타입
var number1: Int = 100 // 부호 포함 정수
var number2: UInt = 100 // 부호 없는 정수 ex -100은 안됨
var number3: Float = 1.1 // 32bit 부동 소수점
var number4: Double = 1.2 // 64bit 부동 소수점
var isNumber: Bool = true
var munja: Character = "a" // length 가 1인 "문자" 만 가능 (문자열 안됨)
var munjaYoel: String = "안녕하세요" // 문자열
var anything: Any = "아무거나" // swfit 에서 문자는 "" ( double quote ) 만 가능! single quote 는 에러!

// 컬렉션 타입
// 1. Array => 순서 있음
var numbers: Array<Int> = Array<Int>() // 기본 정석 생성 방식

numbers.append(1)
numbers.append(2)
numbers.append(3)

numbers[0]  // indexing
numbers[1]

numbers.insert(4, at: 3) // at 도 index 임
numbers.remove(at: 1)
numbers

var names: [String] = [] // 이렇게 해도 됨

//2. Dictionary => key: value
var dic1: Dictionary<String, Int> = Dictionary<String, Int>()
var dic: [String: Int] = ["아무개":1] // {} 이 아님!

dic["홍길동"] = 2
dic["홍길동"] = 99 // 홍길동 값이 변경

dic.removeValue(forKey: "아무개")
dic

// 3. Set => 순서가 없음 => 데이터 중복 허용X
// set의 결과값이 {} 로 나온다! 자바스크립트랑 헷갈린다!
var set: Set = Set<Int>() // set 은 따로 축약형이 없다

set.insert(10)
set.insert(20)
set.insert(30)
set.insert(20) // 안들어감
set

set.remove(20)
set

// 4. 함수
/*
 func 함수명(파라미터명: 데이터 타입) -> 리턴 타입 {
    return 리턴 값
 }
 */


func sum(a:Int, b:Int) -> Int{
    return a+b
}

sum(a:5, b:6) // 함수 생성 때 선언한 파라미터명을 함수를 사용할 때도 선언해줘야함

func sayHello() -> String{
    return "hello"
}

sayHello()

// 반환값이 없으면 리턴 타입을 void 로 선언 (생략 가능)
func printName() {
    
}

/*
 1. 파라미터에 기본값을 입력해 놓으면 파라미터를 입력하지 않았을 때 기본값으로 호출 ( not required )
 2. "" 안에 변수 값을 넣고 싶으면 "\(varibale)"
 */
func greeting(friend: String, me:String = "홍길동"){
    print("Hello, \(friend)!, I'm \(me)")
}

greeting(friend: "임꺽정")
greeting(friend: "임꺽정", me:"아무개")

/*
 func 함수명(전달인자 레이블: 매개변수 이름: 매개변수 타입, 전달인자 레이블: 매개변수 이름: 매개변수 타입 ...) -> 리턴 타입 {
    return 리턴 값
 }
 */
func sendMessage(from myName:String, to name:String) -> String {
    return "Hello, \(name)! I'm \(myName)"
}

sendMessage(from: "Gunter", to: "Jason")


// 와일드카드 식별자 사용
func sendMessage2(_ name:String) -> String {
    return "Hello, \(name)!"
}

sendMessage2("누구세요")

/*
 매개변수가 몇 개 들어올지 모를 때 가변 매개변수 사용.
 Array 형태로 return
 함수당 가변 매개변수는 1개.
 */

func sendMessage3(me:String, friends: String...) -> String {
    return "Hello, \(friends)!, I'm \(me)"
}

sendMessage3(me:"Gunter", friends: "Jason","Albert","Stella")
반응형

'ios > swift' 카테고리의 다른 글

[swift] 기본문법(6)  (0) 2021.11.09
[swift] 기본문법(5)  (0) 2021.11.08
[swift] 기본문법(4)  (0) 2021.11.07
[swift] 기본문법(3)  (0) 2021.11.06
[swift] 기본문법(2)  (0) 2021.11.06