2016년 9월 6일 화요일

Xcode 8.0 beta6, iOS 10.0 beta8 에서 Swift 3.0 기본 문법 설명 예제입니다.

Xcode 8.0 beta6, iOS 10.0 beta8 에서 Swift 3.0 기본 문법 설명 예제입니다.
세세하게 변경된 부분이 많아서 테스트가 필요합니다.
아래 코드에 주석을 달아 놓았습니다.

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

import UIKit

//매개변수와 반환값이 모두 없는 함수
func printHello() {
    print("안녕하세요")
}

printHello()

func sayHello() -> String {
    let returnValue = "안녕하세요"
    return returnValue
}

let returnVal = sayHello()
print(returnVal)

func sayHelloWithName(name : String) -> String {
    let returnValue = "\(name) 안녕하세요"
    return returnValue
}

//Swift 3.0부터 첫번째 인자에 대한 매개변수명도 붙어야 한다.
let returnVal2 = sayHelloWithName(name: "전우치")
print(returnVal2)


//매개변수에 대한 기술
func printHelloWithName(name : String, welcomeMessage : String) {
    print("\(name), \(welcomeMessage)")
}

//호출할
printHelloWithName(name: "전우치", welcomeMessage: "안녕")


//(실인자를 넘기기)
//Swift 3.0부터 inut키워드의 위치가 아래와 같이 변경되었다
func mySwap(a:inout Int, b:inout Int) {
    let t=a; a=b; b=t;
}

var x = 100
var y = 200
mySwap(a: &x, b: &y)
print("x=\(x), y=\(y)")


//_ 사용해서 무시하기(파라메터명을 기술하지 않고 넘어간다!)
func compare(a:Int, b:Int, _:Bool) -> Bool {
    return a > b
}

var result = compare(a:20, b:10, true)
print(result)


//메서드의 오버로드에 대한 데모
func mySwap(a:inout Int, b:inout Int, c:inout Int) {
    let t=a; a=b; b=c; c=t
}

func mySwap(a:inout String, b:inout String) {
    let t=a;a=b;b=t
}

var x1=1, y1=2, z1=3
mySwap(a: &x1, b: &y1, c: &z1)
print("x1=\(x1), y1=\(y1), z1=\(z1)" //x1=2, y1=3, z1=1
var str1="aa"
var str2="bb"
mySwap(a: &str1, b: &str2)
print("str1=\(str1), str2=\(str2)")


//함수의 인수 갯수나 , 반환 값의 형이 다른 동일명의 별도 함수를 정의할 있다.
//스위프트에선 외부 인수명이 다른 동일명의 함수도 정의할 있다.
func mySwap2(a:inout Int, b:inout Int) {
    let t=a; a=b; b=t
}

func mySwap2(little a:inout Int, great b:inout Int) {
    if a > b {
        let t=a; a=b; b=t
    }
}

var s=20
var t=10
mySwap2(little: &s, great: &t)

print("s=\(s), t=\(t)")

댓글 없음:

댓글 쓰기

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.

제 유튜브 채널에 꾸준하게 영상을 올리고 있습니다. ㅎㅎ 2025년에는 100개 정도의 영상을 올릴 생각입니다.

  2024년에 시작한 것이 유튜브 채널입니다. 주로 파이썬 프로그래밍에 관련된 영상들을 올릴 생각입니다. ㅎㅎ 제가 집필한 책을 기본으로 해서 파이썬의 기본 문법, 라이브러리, 챗GPT와의 연동등을 주로 올리려고 합니다. 현재 20개 정도 영상을 ...