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)")

댓글 없음:

댓글 쓰기

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

미국에서 만들고 있는 데이터 센터들 - AI시장이 얼마나 커질까?

 말도 안되는 규모로 테슬라, 메타, OpenAI의 스타게이트 연합군에서 짓고 있는 데이터 센터들입니다.  1기가와트, 2기가와트, 5기가와트 ㅎㅎ  앞으로 세상이 정말 더 많이 변할 것 같습니다. 저는 하드웨어를 직접 다루지 않기 때문에 IDC센터를...