SlideShare a Scribd company logo
1 of 57
Download to read offline
5. Swift 기초
- 기초 함수
창원대학교 정보통신공학과 박동규
2015. 12
함수 Function
• 프로그램의 기본적인 구성요소
• 어떤 작업을 수행하는 문장의 그룹
• 하나의 프로그램은 여러 개의 함수들이 모여서 이루어진
다
• 프로그램에서 레고 블럭과 같은 요소
• 가독성의 증대, 유지관리가 쉽다.
함수
Add10(x)
함수
Add10(x)
num=10
함수
Add10(x)num=10
함수
Add10(x)
함수
Add10(x) num=20
함수
Add10(x)
num=20
Swift의 함수
Swift의 함수
Swift의 함수
Swift의 함수
함수명
Swift의 함수
Swift의 함수
Swift의 함수
매개변수(인자,파라메터)
Swift의 함수
Swift의 함수
Swift의 함수
반환값
Swift의 함수
Swift의 함수
Swift의 함수
함수 몸체
Swift의 함수
Swift의 함수
Swift의 함수
함수 호출- 매개변수가 2개 이상이면 함수의 두번째
매개변수부터는 반드시 레이블을 붙여서 호출해야 한다
다중 반환값
• C/C++/Objective-C/Java 등의 언어에서는 함수가 하나
의 리턴값만을 가질 수 밖에 없어 불편함.
• 튜플(tuple)을 사용하면 여러 개의 값을 한꺼번에 반환할
수 있다.
• 함수의 예를 통해 알아보자
튜플을 이용한 반환
홍길동의 나이와 이름, 키를 반환하는 함수
swap 함수
swap 함수
swap 함수
tuple을 이용하여 반환값을 받아온다
튜플 재조합
함수 중복정의와 매개변수
함수 중복정의
C로 만든 Swap 함수
#include	<stdio.h>	
void	swap(																								)	{	
				int	temp;	
				temp	=	*num1;	
				*num1	=	*num2;	
				*num2	=	temp;	
}	
int	main(int	argc,	const	char	*	argv[])	{	
				int	n1	=	100,	n2	=	200;	
					
				printf("Before	:	n1	=	%d	n",n1);	
				printf("Before	:	n2	=	%d	n",n2);	
					
				swap(													);	
					
				printf("After	:	n1	=	%d	n",n1);	
				printf("After	:	n2	=	%d	n",n2);	
					
				return	0;	
}
C로 만든 Swap 함수
#include	<stdio.h>	
void	swap(																								)	{	
				int	temp;	
				temp	=	*num1;	
				*num1	=	*num2;	
				*num2	=	temp;	
}	
int	main(int	argc,	const	char	*	argv[])	{	
				int	n1	=	100,	n2	=	200;	
					
				printf("Before	:	n1	=	%d	n",n1);	
				printf("Before	:	n2	=	%d	n",n2);	
					
				swap(													);	
					
				printf("After	:	n1	=	%d	n",n1);	
				printf("After	:	n2	=	%d	n",n2);	
					
				return	0;	
}	 포인터 연산자를 이용하여 외부 변수값에 접근함
C로 만든 Swap 함수
#include	<stdio.h>	
void	swap(																								)	{	
				int	temp;	
				temp	=	*num1;	
				*num1	=	*num2;	
				*num2	=	temp;	
}	
int	main(int	argc,	const	char	*	argv[])	{	
				int	n1	=	100,	n2	=	200;	
					
				printf("Before	:	n1	=	%d	n",n1);	
				printf("Before	:	n2	=	%d	n",n2);	
					
				swap(													);	
					
				printf("After	:	n1	=	%d	n",n1);	
				printf("After	:	n2	=	%d	n",n2);	
					
				return	0;	
}	 포인터 연산자를 이용하여 외부 변수값에 접근함
&n1,	&n2
C로 만든 Swap 함수
#include	<stdio.h>	
void	swap(																								)	{	
				int	temp;	
				temp	=	*num1;	
				*num1	=	*num2;	
				*num2	=	temp;	
}	
int	main(int	argc,	const	char	*	argv[])	{	
				int	n1	=	100,	n2	=	200;	
					
				printf("Before	:	n1	=	%d	n",n1);	
				printf("Before	:	n2	=	%d	n",n2);	
					
				swap(													);	
					
				printf("After	:	n1	=	%d	n",n1);	
				printf("After	:	n2	=	%d	n",n2);	
					
				return	0;	
}	 포인터 연산자를 이용하여 외부 변수값에 접근함
&n1,	&n2
C로 만든 Swap 함수
#include	<stdio.h>	
void	swap(																								)	{	
				int	temp;	
				temp	=	*num1;	
				*num1	=	*num2;	
				*num2	=	temp;	
}	
int	main(int	argc,	const	char	*	argv[])	{	
				int	n1	=	100,	n2	=	200;	
					
				printf("Before	:	n1	=	%d	n",n1);	
				printf("Before	:	n2	=	%d	n",n2);	
					
				swap(													);	
					
				printf("After	:	n1	=	%d	n",n1);	
				printf("After	:	n2	=	%d	n",n2);	
					
				return	0;	
}	 포인터 연산자를 이용하여 외부 변수값에 접근함
&n1,	&n2
int	*num1,	int	*num2
C로 만든 Swap 함수
#include	<stdio.h>	
void	swap(																								)	{	
				int	temp;	
				temp	=	*num1;	
				*num1	=	*num2;	
				*num2	=	temp;	
}	
int	main(int	argc,	const	char	*	argv[])	{	
				int	n1	=	100,	n2	=	200;	
					
				printf("Before	:	n1	=	%d	n",n1);	
				printf("Before	:	n2	=	%d	n",n2);	
					
				swap(													);	
					
				printf("After	:	n1	=	%d	n",n1);	
				printf("After	:	n2	=	%d	n",n2);	
					
				return	0;	
}	 포인터 연산자를 이용하여 외부 변수값에 접근함
&n1,	&n2
int	*num1,	int	*num2
C++로 만든 Swap 함수#include	<iostream>	
using	namespace	std;	
void	swap(																								)	{	
				int	temp;	
				temp	=	num1;	
				num1	=	num2;	
				num2	=	temp;	
}	
int	main(int	argc,	const	char	*	argv[])	{	
				int	n1	=	100,	n2	=	200;	
					
			cout	<<	"Before	:	n1	=	"	<<	n1	<<	endl;	
				cout	<<	"Before	:	n2	=	"	<<	n2	<<	endl;	
					
				swap(											);	
					
				cout	<<	"After	:	n1	=	"	<<	n1	<<	endl;	
				cout	<<	"After	:	n2	=	"	<<	n2	<<	endl;	
					
				return	0;	
}
C++로 만든 Swap 함수#include	<iostream>	
using	namespace	std;	
void	swap(																								)	{	
				int	temp;	
				temp	=	num1;	
				num1	=	num2;	
				num2	=	temp;	
}	
int	main(int	argc,	const	char	*	argv[])	{	
				int	n1	=	100,	n2	=	200;	
					
			cout	<<	"Before	:	n1	=	"	<<	n1	<<	endl;	
				cout	<<	"Before	:	n2	=	"	<<	n2	<<	endl;	
					
				swap(											);	
					
				cout	<<	"After	:	n1	=	"	<<	n1	<<	endl;	
				cout	<<	"After	:	n2	=	"	<<	n2	<<	endl;	
					
				return	0;	
}	
참조 연산자 & 를 이용하여 쉽게 변수값에 접근함
C++로 만든 Swap 함수#include	<iostream>	
using	namespace	std;	
void	swap(																								)	{	
				int	temp;	
				temp	=	num1;	
				num1	=	num2;	
				num2	=	temp;	
}	
int	main(int	argc,	const	char	*	argv[])	{	
				int	n1	=	100,	n2	=	200;	
					
			cout	<<	"Before	:	n1	=	"	<<	n1	<<	endl;	
				cout	<<	"Before	:	n2	=	"	<<	n2	<<	endl;	
					
				swap(											);	
					
				cout	<<	"After	:	n1	=	"	<<	n1	<<	endl;	
				cout	<<	"After	:	n2	=	"	<<	n2	<<	endl;	
					
				return	0;	
}	
참조 연산자 & 를 이용하여 쉽게 변수값에 접근함
n1,	n2
C++로 만든 Swap 함수#include	<iostream>	
using	namespace	std;	
void	swap(																								)	{	
				int	temp;	
				temp	=	num1;	
				num1	=	num2;	
				num2	=	temp;	
}	
int	main(int	argc,	const	char	*	argv[])	{	
				int	n1	=	100,	n2	=	200;	
					
			cout	<<	"Before	:	n1	=	"	<<	n1	<<	endl;	
				cout	<<	"Before	:	n2	=	"	<<	n2	<<	endl;	
					
				swap(											);	
					
				cout	<<	"After	:	n1	=	"	<<	n1	<<	endl;	
				cout	<<	"After	:	n2	=	"	<<	n2	<<	endl;	
					
				return	0;	
}	
참조 연산자 & 를 이용하여 쉽게 변수값에 접근함
n1,	n2
C++로 만든 Swap 함수#include	<iostream>	
using	namespace	std;	
void	swap(																								)	{	
				int	temp;	
				temp	=	num1;	
				num1	=	num2;	
				num2	=	temp;	
}	
int	main(int	argc,	const	char	*	argv[])	{	
				int	n1	=	100,	n2	=	200;	
					
			cout	<<	"Before	:	n1	=	"	<<	n1	<<	endl;	
				cout	<<	"Before	:	n2	=	"	<<	n2	<<	endl;	
					
				swap(											);	
					
				cout	<<	"After	:	n1	=	"	<<	n1	<<	endl;	
				cout	<<	"After	:	n2	=	"	<<	n2	<<	endl;	
					
				return	0;	
}	
참조 연산자 & 를 이용하여 쉽게 변수값에 접근함
n1,	n2
int	&num1,	int	&num2
C++로 만든 Swap 함수#include	<iostream>	
using	namespace	std;	
void	swap(																								)	{	
				int	temp;	
				temp	=	num1;	
				num1	=	num2;	
				num2	=	temp;	
}	
int	main(int	argc,	const	char	*	argv[])	{	
				int	n1	=	100,	n2	=	200;	
					
			cout	<<	"Before	:	n1	=	"	<<	n1	<<	endl;	
				cout	<<	"Before	:	n2	=	"	<<	n2	<<	endl;	
					
				swap(											);	
					
				cout	<<	"After	:	n1	=	"	<<	n1	<<	endl;	
				cout	<<	"After	:	n2	=	"	<<	n2	<<	endl;	
					
				return	0;	
}	
참조 연산자 & 를 이용하여 쉽게 변수값에 접근함
n1,	n2
int	&num1,	int	&num2
Swift로 만든 Swap 함수1
import	Foundation	
func	swap(n1:Int,	n2:Int)	->	(Int,	Int){	
				return	(n2,	n1)	
}	
var	n1	=	100	
var	n2	=	200	
print("Before	:	n1	=	(n1)")	
print("Before	:	n2	=	(n2)")	
(n1,	n2)	=	swap(n1,	n2)	
print("After	:	n1	=	(n1)")	
print("After	:	n2	=	(n2)")
Swift로 만든 Swap 함수1
import	Foundation	
func	swap(n1:Int,	n2:Int)	->	(Int,	Int){	
				return	(n2,	n1)	
}	
var	n1	=	100	
var	n2	=	200	
print("Before	:	n1	=	(n1)")	
print("Before	:	n2	=	(n2)")	
(n1,	n2)	=	swap(n1,	n2)	
print("After	:	n1	=	(n1)")	
print("After	:	n2	=	(n2)")
튜플을 반환하는 방식으로 간단하게 구현가능
Swift로 만든 Swap 함수1
import	Foundation	
func	swap(n1:Int,	n2:Int)	->	(Int,	Int){	
				return	(n2,	n1)	
}	
var	n1	=	100	
var	n2	=	200	
print("Before	:	n1	=	(n1)")	
print("Before	:	n2	=	(n2)")	
(n1,	n2)	=	swap(n1,	n2)	
print("After	:	n1	=	(n1)")	
print("After	:	n2	=	(n2)")
튜플을 반환하는 방식으로 간단하게 구현가능
Swift로 만든 Swap 함수2
import	Foundation	
func	swap(inout	a:	Int,	inout	b:	Int)	
{	
				let	temporaryA	=	a	
				a	=	b	
				b	=	temporaryA	
}	
var	n1	=	100	
var	n2	=	200	
print("Before	:	n1	=	(n1)")	
print("Before	:	n2	=	(n2)")	
swap(&n1,	&n2)	
print("After	:	n1	=	(n1)")	
print("After	:	n2	=	(n2)")
Swift로 만든 Swap 함수2
import	Foundation	
func	swap(inout	a:	Int,	inout	b:	Int)	
{	
				let	temporaryA	=	a	
				a	=	b	
				b	=	temporaryA	
}	
var	n1	=	100	
var	n2	=	200	
print("Before	:	n1	=	(n1)")	
print("Before	:	n2	=	(n2)")	
swap(&n1,	&n2)	
print("After	:	n1	=	(n1)")	
print("After	:	n2	=	(n2)")
Swift로 만든 Swap 함수2
import	Foundation	
func	swap(inout	a:	Int,	inout	b:	Int)	
{	
				let	temporaryA	=	a	
				a	=	b	
				b	=	temporaryA	
}	
var	n1	=	100	
var	n2	=	200	
print("Before	:	n1	=	(n1)")	
print("Before	:	n2	=	(n2)")	
swap(&n1,	&n2)	
print("After	:	n1	=	(n1)")	
print("After	:	n2	=	(n2)")
게
Swift로 만든 Swap 함수2
import	Foundation	
func	swap(inout	a:	Int,	inout	b:	Int)	
{	
				let	temporaryA	=	a	
				a	=	b	
				b	=	temporaryA	
}	
var	n1	=	100	
var	n2	=	200	
print("Before	:	n1	=	(n1)")	
print("Before	:	n2	=	(n2)")	
swap(&n1,	&n2)	
print("After	:	n1	=	(n1)")	
print("After	:	n2	=	(n2)")
게
inout과 & 연산자를 사용하여 외부값을 참조할 수 있음
inout
• 매개변수 중에서 함수내에서 변경된 매개변수가 함수 호
출이 종료된 시점에서도 계속 유지되기를 원한다면
inout 키워드를 사용한다
• 매개변수의 값은 함수 안으로 전달되어 변경되고, 함수에
서 나와서 원래의 값을 대체함
• 인수를 입출력 파라메터로 넘길때 변수의 이름 앞에 앰퍼
샌드(&)를 붙인다
BONUS : Swift로 만든 Swap
-함수사용이 필요하지 않음
import	Foundation	
var	n1	=	100	
var	n2	=	200	
print("Before	:	n1	=	(n1)")	
print("Before	:	n2	=	(n2)")	
(n1,	n2)	=	(n2,	n1)		//	튜플사용	
print("After	:	n1	=	(n1)")	
print("After	:	n2	=	(n2)")
BONUS : Swift로 만든 Swap
-함수사용이 필요하지 않음
import	Foundation	
var	n1	=	100	
var	n2	=	200	
print("Before	:	n1	=	(n1)")	
print("Before	:	n2	=	(n2)")	
(n1,	n2)	=	(n2,	n1)		//	튜플사용	
print("After	:	n1	=	(n1)")	
print("After	:	n2	=	(n2)")
BONUS : Swift로 만든 Swap
-함수사용이 필요하지 않음
import	Foundation	
var	n1	=	100	
var	n2	=	200	
print("Before	:	n1	=	(n1)")	
print("Before	:	n2	=	(n2)")	
(n1,	n2)	=	(n2,	n1)		//	튜플사용	
print("After	:	n1	=	(n1)")	
print("After	:	n2	=	(n2)")
(Int, Int) 튜플을 (Int, Int) 튜플에 복사함
정리
• Swift의 함수는 튜플타입 반환을 허용한다
• 함수의 두번째 매개변수부터는 반드시 레이블을 붙여야
한다
• Swift 2.0 이상
• 함수이름의 중복정의를 허용한다
• inout을 통해서 함수내에서 매개변수의 수정을 허용한다
감사합니다
dongupak@gmail.com

More Related Content

What's hot

Java 8 api :: lambda 이용하기
Java 8 api :: lambda 이용하기Java 8 api :: lambda 이용하기
Java 8 api :: lambda 이용하기rupert kim
 
자바8 스트림 API 소개
자바8 스트림 API 소개자바8 스트림 API 소개
자바8 스트림 API 소개beom kyun choi
 
Function & Closure about Swift
Function & Closure about Swift Function & Closure about Swift
Function & Closure about Swift KimDaeho
 
나에 첫번째 자바8 람다식 지앤선
나에 첫번째 자바8 람다식   지앤선나에 첫번째 자바8 람다식   지앤선
나에 첫번째 자바8 람다식 지앤선daewon jeong
 
Realm.io for iOS
Realm.io for iOSRealm.io for iOS
Realm.io for iOSEunjoo Im
 
Template at c++
Template at c++Template at c++
Template at c++Lusain Kim
 
프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기Jongwook Choi
 
[devil's camp] - 알고리즘 대회와 STL (박인서)
[devil's camp] - 알고리즘 대회와 STL (박인서)[devil's camp] - 알고리즘 대회와 STL (박인서)
[devil's camp] - 알고리즘 대회와 STL (박인서)NAVER D2
 
스위프트 성능 이해하기
스위프트 성능 이해하기스위프트 성능 이해하기
스위프트 성능 이해하기Yongha Yoo
 
자바8 람다식 소개
자바8 람다식 소개자바8 람다식 소개
자바8 람다식 소개beom kyun choi
 
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)Circulus
 
Startup JavaScript 4 - 객체
Startup JavaScript 4 - 객체Startup JavaScript 4 - 객체
Startup JavaScript 4 - 객체Circulus
 
[C++ Korea 2nd Seminar] C++17 Key Features Summary
[C++ Korea 2nd Seminar] C++17 Key Features Summary[C++ Korea 2nd Seminar] C++17 Key Features Summary
[C++ Korea 2nd Seminar] C++17 Key Features SummaryChris Ohk
 
Javascript 교육자료 pdf
Javascript 교육자료 pdfJavascript 교육자료 pdf
Javascript 교육자료 pdfHyosang Hong
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심흥배 최
 

What's hot (20)

Java 8 api :: lambda 이용하기
Java 8 api :: lambda 이용하기Java 8 api :: lambda 이용하기
Java 8 api :: lambda 이용하기
 
자바8 스트림 API 소개
자바8 스트림 API 소개자바8 스트림 API 소개
자바8 스트림 API 소개
 
Function & Closure about Swift
Function & Closure about Swift Function & Closure about Swift
Function & Closure about Swift
 
자바 8 학습
자바 8 학습자바 8 학습
자바 8 학습
 
나에 첫번째 자바8 람다식 지앤선
나에 첫번째 자바8 람다식   지앤선나에 첫번째 자바8 람다식   지앤선
나에 첫번째 자바8 람다식 지앤선
 
Realm.io for iOS
Realm.io for iOSRealm.io for iOS
Realm.io for iOS
 
Template at c++
Template at c++Template at c++
Template at c++
 
프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기
 
8 swift 중첩함수
8 swift 중첩함수8 swift 중첩함수
8 swift 중첩함수
 
[devil's camp] - 알고리즘 대회와 STL (박인서)
[devil's camp] - 알고리즘 대회와 STL (박인서)[devil's camp] - 알고리즘 대회와 STL (박인서)
[devil's camp] - 알고리즘 대회와 STL (박인서)
 
스위프트 성능 이해하기
스위프트 성능 이해하기스위프트 성능 이해하기
스위프트 성능 이해하기
 
C++11
C++11C++11
C++11
 
자바8 람다식 소개
자바8 람다식 소개자바8 람다식 소개
자바8 람다식 소개
 
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
 
Startup JavaScript 4 - 객체
Startup JavaScript 4 - 객체Startup JavaScript 4 - 객체
Startup JavaScript 4 - 객체
 
[C++ Korea 2nd Seminar] C++17 Key Features Summary
[C++ Korea 2nd Seminar] C++17 Key Features Summary[C++ Korea 2nd Seminar] C++17 Key Features Summary
[C++ Korea 2nd Seminar] C++17 Key Features Summary
 
iOS 메모리관리
iOS 메모리관리iOS 메모리관리
iOS 메모리관리
 
Javascript 교육자료 pdf
Javascript 교육자료 pdfJavascript 교육자료 pdf
Javascript 교육자료 pdf
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심
 
C++에서 Objective-C까지
C++에서 Objective-C까지C++에서 Objective-C까지
C++에서 Objective-C까지
 

Viewers also liked

Homeopathy—quackery or a key to the future of medicine?
Homeopathy—quackery or a key to the future of medicine?Homeopathy—quackery or a key to the future of medicine?
Homeopathy—quackery or a key to the future of medicine?home
 
2014 Smartfonowe e-kursy z wykorzystaniem Moodle
2014 Smartfonowe e-kursy z wykorzystaniem Moodle2014 Smartfonowe e-kursy z wykorzystaniem Moodle
2014 Smartfonowe e-kursy z wykorzystaniem MoodleAndrzej Syguła
 
Vesneske Human Resources Resume 2016
Vesneske Human Resources Resume 2016Vesneske Human Resources Resume 2016
Vesneske Human Resources Resume 2016Staci Vesneske
 
articleHealth professionals’ and families’ understanding of the role ofindivi...
articleHealth professionals’ and families’ understanding of the role ofindivi...articleHealth professionals’ and families’ understanding of the role ofindivi...
articleHealth professionals’ and families’ understanding of the role ofindivi...home
 
Checklist para Confidente
Checklist para ConfidenteChecklist para Confidente
Checklist para Confidentemykeura
 
approach piece with ppa
approach piece with ppaapproach piece with ppa
approach piece with ppaMichael Cash
 
Cognitve Behavioural Therapy: A basic overview (written document)
Cognitve Behavioural Therapy: A basic overview (written document)Cognitve Behavioural Therapy: A basic overview (written document)
Cognitve Behavioural Therapy: A basic overview (written document)meducationdotnet
 
Lkmu paket b mts n kebumen 1
Lkmu paket b mts n kebumen 1Lkmu paket b mts n kebumen 1
Lkmu paket b mts n kebumen 1-Yuniati Said
 
Disorders of pharynx, dr.sithanandhakumar,25.07.2016
Disorders of pharynx, dr.sithanandhakumar,25.07.2016Disorders of pharynx, dr.sithanandhakumar,25.07.2016
Disorders of pharynx, dr.sithanandhakumar,25.07.2016ophthalmgmcri
 
Plućna hipertenzija predavanje
Plućna hipertenzija predavanjePlućna hipertenzija predavanje
Plućna hipertenzija predavanjeMiodrag Jarkin
 

Viewers also liked (15)

Homeopathy—quackery or a key to the future of medicine?
Homeopathy—quackery or a key to the future of medicine?Homeopathy—quackery or a key to the future of medicine?
Homeopathy—quackery or a key to the future of medicine?
 
2014 Smartfonowe e-kursy z wykorzystaniem Moodle
2014 Smartfonowe e-kursy z wykorzystaniem Moodle2014 Smartfonowe e-kursy z wykorzystaniem Moodle
2014 Smartfonowe e-kursy z wykorzystaniem Moodle
 
C 492
C 492C 492
C 492
 
Ssu 091
Ssu 091Ssu 091
Ssu 091
 
Vesneske Human Resources Resume 2016
Vesneske Human Resources Resume 2016Vesneske Human Resources Resume 2016
Vesneske Human Resources Resume 2016
 
articleHealth professionals’ and families’ understanding of the role ofindivi...
articleHealth professionals’ and families’ understanding of the role ofindivi...articleHealth professionals’ and families’ understanding of the role ofindivi...
articleHealth professionals’ and families’ understanding of the role ofindivi...
 
Checklist para Confidente
Checklist para ConfidenteChecklist para Confidente
Checklist para Confidente
 
My Certificate
My CertificateMy Certificate
My Certificate
 
approach piece with ppa
approach piece with ppaapproach piece with ppa
approach piece with ppa
 
Com project
Com projectCom project
Com project
 
Cognitve Behavioural Therapy: A basic overview (written document)
Cognitve Behavioural Therapy: A basic overview (written document)Cognitve Behavioural Therapy: A basic overview (written document)
Cognitve Behavioural Therapy: A basic overview (written document)
 
Lkmu paket b mts n kebumen 1
Lkmu paket b mts n kebumen 1Lkmu paket b mts n kebumen 1
Lkmu paket b mts n kebumen 1
 
Disorders of pharynx, dr.sithanandhakumar,25.07.2016
Disorders of pharynx, dr.sithanandhakumar,25.07.2016Disorders of pharynx, dr.sithanandhakumar,25.07.2016
Disorders of pharynx, dr.sithanandhakumar,25.07.2016
 
Plućna hipertenzija predavanje
Plućna hipertenzija predavanjePlućna hipertenzija predavanje
Plućna hipertenzija predavanje
 
Ametta Place
Ametta PlaceAmetta Place
Ametta Place
 

Similar to 5 swift 기초함수

김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019min woog kim
 
About Visual C++ 10
About  Visual C++ 10About  Visual C++ 10
About Visual C++ 10흥배 최
 
C++17 Key Features Summary - Ver 2
C++17 Key Features Summary - Ver 2C++17 Key Features Summary - Ver 2
C++17 Key Features Summary - Ver 2Chris Ohk
 
Effective modern cpp item14
Effective modern cpp item14Effective modern cpp item14
Effective modern cpp item14진화 손
 
불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 명신 김
 
병렬 프로그래밍
병렬 프로그래밍병렬 프로그래밍
병렬 프로그래밍준혁 이
 
NDC11_슈퍼클래스
NDC11_슈퍼클래스NDC11_슈퍼클래스
NDC11_슈퍼클래스noerror
 
7가지 동시성 모델 - 3장. 함수형 프로그래밍
7가지 동시성 모델 - 3장. 함수형 프로그래밍7가지 동시성 모델 - 3장. 함수형 프로그래밍
7가지 동시성 모델 - 3장. 함수형 프로그래밍Hyunsoo Jung
 
20150212 c++11 features used in crow
20150212 c++11 features used in crow20150212 c++11 features used in crow
20150212 c++11 features used in crowJaeseung Ha
 
C언어 세미나 - 함수
C언어 세미나 - 함수C언어 세미나 - 함수
C언어 세미나 - 함수SeungHyun Lee
 
카사 공개세미나1회 W.E.L.C.
카사 공개세미나1회  W.E.L.C.카사 공개세미나1회  W.E.L.C.
카사 공개세미나1회 W.E.L.C.Ryan Park
 
NDC 2011, 네트워크 비동기 통신, 합의점의 길목에서
NDC 2011, 네트워크 비동기 통신, 합의점의 길목에서NDC 2011, 네트워크 비동기 통신, 합의점의 길목에서
NDC 2011, 네트워크 비동기 통신, 합의점의 길목에서tcaesvk
 
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[NDC 2016] 유니티, iOS에서 LINQ 사용하기[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[NDC 2016] 유니티, iOS에서 LINQ 사용하기Daehee Kim
 
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현NAVER Engineering
 
C++20 Key Features Summary
C++20 Key Features SummaryC++20 Key Features Summary
C++20 Key Features SummaryChris Ohk
 
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard LibraryDongMin Choi
 

Similar to 5 swift 기초함수 (20)

Swift의 함수와 메소드
Swift의 함수와 메소드Swift의 함수와 메소드
Swift의 함수와 메소드
 
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
 
About Visual C++ 10
About  Visual C++ 10About  Visual C++ 10
About Visual C++ 10
 
강의자료 2
강의자료 2강의자료 2
강의자료 2
 
C++17 Key Features Summary - Ver 2
C++17 Key Features Summary - Ver 2C++17 Key Features Summary - Ver 2
C++17 Key Features Summary - Ver 2
 
Effective modern cpp item14
Effective modern cpp item14Effective modern cpp item14
Effective modern cpp item14
 
불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14
 
함수적 사고 2장
함수적 사고 2장함수적 사고 2장
함수적 사고 2장
 
병렬 프로그래밍
병렬 프로그래밍병렬 프로그래밍
병렬 프로그래밍
 
NDC11_슈퍼클래스
NDC11_슈퍼클래스NDC11_슈퍼클래스
NDC11_슈퍼클래스
 
7가지 동시성 모델 - 3장. 함수형 프로그래밍
7가지 동시성 모델 - 3장. 함수형 프로그래밍7가지 동시성 모델 - 3장. 함수형 프로그래밍
7가지 동시성 모델 - 3장. 함수형 프로그래밍
 
20150212 c++11 features used in crow
20150212 c++11 features used in crow20150212 c++11 features used in crow
20150212 c++11 features used in crow
 
C언어 세미나 - 함수
C언어 세미나 - 함수C언어 세미나 - 함수
C언어 세미나 - 함수
 
카사 공개세미나1회 W.E.L.C.
카사 공개세미나1회  W.E.L.C.카사 공개세미나1회  W.E.L.C.
카사 공개세미나1회 W.E.L.C.
 
NDC 2011, 네트워크 비동기 통신, 합의점의 길목에서
NDC 2011, 네트워크 비동기 통신, 합의점의 길목에서NDC 2011, 네트워크 비동기 통신, 합의점의 길목에서
NDC 2011, 네트워크 비동기 통신, 합의점의 길목에서
 
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[NDC 2016] 유니티, iOS에서 LINQ 사용하기[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
 
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현
 
Changes in c++0x
Changes in c++0xChanges in c++0x
Changes in c++0x
 
C++20 Key Features Summary
C++20 Key Features SummaryC++20 Key Features Summary
C++20 Key Features Summary
 
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
 

More from Changwon National University

생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdfChangwon National University
 
알아두면 편리한 macOS 에디터 단축키와 기능
알아두면 편리한 macOS 에디터  단축키와 기능알아두면 편리한 macOS 에디터  단축키와 기능
알아두면 편리한 macOS 에디터 단축키와 기능Changwon National University
 
키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)Changwon National University
 
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)Changwon National University
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리Changwon National University
 
15 2 클래스정의와self
15 2 클래스정의와self15 2 클래스정의와self
15 2 클래스정의와selfChangwon National University
 

More from Changwon National University (20)

생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf
 
2011 app center Changwon National Univ.
2011 app center Changwon National Univ.2011 app center Changwon National Univ.
2011 app center Changwon National Univ.
 
인공지능의 파도가 온다
인공지능의 파도가 온다인공지능의 파도가 온다
인공지능의 파도가 온다
 
Mobile Healthcare Application
Mobile Healthcare ApplicationMobile Healthcare Application
Mobile Healthcare Application
 
바다 즐기기
바다 즐기기바다 즐기기
바다 즐기기
 
알아두면 편리한 macOS 에디터 단축키와 기능
알아두면 편리한 macOS 에디터  단축키와 기능알아두면 편리한 macOS 에디터  단축키와 기능
알아두면 편리한 macOS 에디터 단축키와 기능
 
키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)
 
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
 
20 2 강의를 마치며
20 2 강의를 마치며20 2 강의를 마치며
20 2 강의를 마치며
 
20 1 코딩스타일
20 1 코딩스타일20 1 코딩스타일
20 1 코딩스타일
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리
 
18 1 파이썬패키지
18 1 파이썬패키지18 1 파이썬패키지
18 1 파이썬패키지
 
17 2 필터함수와 맵함수
17 2 필터함수와 맵함수17 2 필터함수와 맵함수
17 2 필터함수와 맵함수
 
17 1 람다함수
17 1 람다함수17 1 람다함수
17 1 람다함수
 
16 1 상속과super()
16 1 상속과super()16 1 상속과super()
16 1 상속과super()
 
15 2 클래스정의와self
15 2 클래스정의와self15 2 클래스정의와self
15 2 클래스정의와self
 
14 4 슬라이싱
14 4 슬라이싱14 4 슬라이싱
14 4 슬라이싱
 
14 2 iterator
14 2 iterator14 2 iterator
14 2 iterator
 
14 3 리스트함수
14 3 리스트함수14 3 리스트함수
14 3 리스트함수
 
14 1 리스트의 메소드
14 1 리스트의 메소드14 1 리스트의 메소드
14 1 리스트의 메소드
 

5 swift 기초함수

  • 1. 5. Swift 기초 - 기초 함수 창원대학교 정보통신공학과 박동규 2015. 12
  • 2. 함수 Function • 프로그램의 기본적인 구성요소 • 어떤 작업을 수행하는 문장의 그룹 • 하나의 프로그램은 여러 개의 함수들이 모여서 이루어진 다 • 프로그램에서 레고 블럭과 같은 요소 • 가독성의 증대, 유지관리가 쉽다.
  • 24. Swift의 함수 함수 호출- 매개변수가 2개 이상이면 함수의 두번째 매개변수부터는 반드시 레이블을 붙여서 호출해야 한다
  • 25. 다중 반환값 • C/C++/Objective-C/Java 등의 언어에서는 함수가 하나 의 리턴값만을 가질 수 밖에 없어 불편함. • 튜플(tuple)을 사용하면 여러 개의 값을 한꺼번에 반환할 수 있다. • 함수의 예를 통해 알아보자
  • 26. 튜플을 이용한 반환 홍길동의 나이와 이름, 키를 반환하는 함수
  • 29. swap 함수 tuple을 이용하여 반환값을 받아온다
  • 33. C로 만든 Swap 함수 #include <stdio.h> void swap( ) { int temp; temp = *num1; *num1 = *num2; *num2 = temp; } int main(int argc, const char * argv[]) { int n1 = 100, n2 = 200; printf("Before : n1 = %d n",n1); printf("Before : n2 = %d n",n2); swap( ); printf("After : n1 = %d n",n1); printf("After : n2 = %d n",n2); return 0; }
  • 34. C로 만든 Swap 함수 #include <stdio.h> void swap( ) { int temp; temp = *num1; *num1 = *num2; *num2 = temp; } int main(int argc, const char * argv[]) { int n1 = 100, n2 = 200; printf("Before : n1 = %d n",n1); printf("Before : n2 = %d n",n2); swap( ); printf("After : n1 = %d n",n1); printf("After : n2 = %d n",n2); return 0; } 포인터 연산자를 이용하여 외부 변수값에 접근함
  • 35. C로 만든 Swap 함수 #include <stdio.h> void swap( ) { int temp; temp = *num1; *num1 = *num2; *num2 = temp; } int main(int argc, const char * argv[]) { int n1 = 100, n2 = 200; printf("Before : n1 = %d n",n1); printf("Before : n2 = %d n",n2); swap( ); printf("After : n1 = %d n",n1); printf("After : n2 = %d n",n2); return 0; } 포인터 연산자를 이용하여 외부 변수값에 접근함 &n1, &n2
  • 36. C로 만든 Swap 함수 #include <stdio.h> void swap( ) { int temp; temp = *num1; *num1 = *num2; *num2 = temp; } int main(int argc, const char * argv[]) { int n1 = 100, n2 = 200; printf("Before : n1 = %d n",n1); printf("Before : n2 = %d n",n2); swap( ); printf("After : n1 = %d n",n1); printf("After : n2 = %d n",n2); return 0; } 포인터 연산자를 이용하여 외부 변수값에 접근함 &n1, &n2
  • 37. C로 만든 Swap 함수 #include <stdio.h> void swap( ) { int temp; temp = *num1; *num1 = *num2; *num2 = temp; } int main(int argc, const char * argv[]) { int n1 = 100, n2 = 200; printf("Before : n1 = %d n",n1); printf("Before : n2 = %d n",n2); swap( ); printf("After : n1 = %d n",n1); printf("After : n2 = %d n",n2); return 0; } 포인터 연산자를 이용하여 외부 변수값에 접근함 &n1, &n2 int *num1, int *num2
  • 38. C로 만든 Swap 함수 #include <stdio.h> void swap( ) { int temp; temp = *num1; *num1 = *num2; *num2 = temp; } int main(int argc, const char * argv[]) { int n1 = 100, n2 = 200; printf("Before : n1 = %d n",n1); printf("Before : n2 = %d n",n2); swap( ); printf("After : n1 = %d n",n1); printf("After : n2 = %d n",n2); return 0; } 포인터 연산자를 이용하여 외부 변수값에 접근함 &n1, &n2 int *num1, int *num2
  • 39. C++로 만든 Swap 함수#include <iostream> using namespace std; void swap( ) { int temp; temp = num1; num1 = num2; num2 = temp; } int main(int argc, const char * argv[]) { int n1 = 100, n2 = 200; cout << "Before : n1 = " << n1 << endl; cout << "Before : n2 = " << n2 << endl; swap( ); cout << "After : n1 = " << n1 << endl; cout << "After : n2 = " << n2 << endl; return 0; }
  • 40. C++로 만든 Swap 함수#include <iostream> using namespace std; void swap( ) { int temp; temp = num1; num1 = num2; num2 = temp; } int main(int argc, const char * argv[]) { int n1 = 100, n2 = 200; cout << "Before : n1 = " << n1 << endl; cout << "Before : n2 = " << n2 << endl; swap( ); cout << "After : n1 = " << n1 << endl; cout << "After : n2 = " << n2 << endl; return 0; } 참조 연산자 & 를 이용하여 쉽게 변수값에 접근함
  • 41. C++로 만든 Swap 함수#include <iostream> using namespace std; void swap( ) { int temp; temp = num1; num1 = num2; num2 = temp; } int main(int argc, const char * argv[]) { int n1 = 100, n2 = 200; cout << "Before : n1 = " << n1 << endl; cout << "Before : n2 = " << n2 << endl; swap( ); cout << "After : n1 = " << n1 << endl; cout << "After : n2 = " << n2 << endl; return 0; } 참조 연산자 & 를 이용하여 쉽게 변수값에 접근함 n1, n2
  • 42. C++로 만든 Swap 함수#include <iostream> using namespace std; void swap( ) { int temp; temp = num1; num1 = num2; num2 = temp; } int main(int argc, const char * argv[]) { int n1 = 100, n2 = 200; cout << "Before : n1 = " << n1 << endl; cout << "Before : n2 = " << n2 << endl; swap( ); cout << "After : n1 = " << n1 << endl; cout << "After : n2 = " << n2 << endl; return 0; } 참조 연산자 & 를 이용하여 쉽게 변수값에 접근함 n1, n2
  • 43. C++로 만든 Swap 함수#include <iostream> using namespace std; void swap( ) { int temp; temp = num1; num1 = num2; num2 = temp; } int main(int argc, const char * argv[]) { int n1 = 100, n2 = 200; cout << "Before : n1 = " << n1 << endl; cout << "Before : n2 = " << n2 << endl; swap( ); cout << "After : n1 = " << n1 << endl; cout << "After : n2 = " << n2 << endl; return 0; } 참조 연산자 & 를 이용하여 쉽게 변수값에 접근함 n1, n2 int &num1, int &num2
  • 44. C++로 만든 Swap 함수#include <iostream> using namespace std; void swap( ) { int temp; temp = num1; num1 = num2; num2 = temp; } int main(int argc, const char * argv[]) { int n1 = 100, n2 = 200; cout << "Before : n1 = " << n1 << endl; cout << "Before : n2 = " << n2 << endl; swap( ); cout << "After : n1 = " << n1 << endl; cout << "After : n2 = " << n2 << endl; return 0; } 참조 연산자 & 를 이용하여 쉽게 변수값에 접근함 n1, n2 int &num1, int &num2
  • 45. Swift로 만든 Swap 함수1 import Foundation func swap(n1:Int, n2:Int) -> (Int, Int){ return (n2, n1) } var n1 = 100 var n2 = 200 print("Before : n1 = (n1)") print("Before : n2 = (n2)") (n1, n2) = swap(n1, n2) print("After : n1 = (n1)") print("After : n2 = (n2)")
  • 46. Swift로 만든 Swap 함수1 import Foundation func swap(n1:Int, n2:Int) -> (Int, Int){ return (n2, n1) } var n1 = 100 var n2 = 200 print("Before : n1 = (n1)") print("Before : n2 = (n2)") (n1, n2) = swap(n1, n2) print("After : n1 = (n1)") print("After : n2 = (n2)") 튜플을 반환하는 방식으로 간단하게 구현가능
  • 47. Swift로 만든 Swap 함수1 import Foundation func swap(n1:Int, n2:Int) -> (Int, Int){ return (n2, n1) } var n1 = 100 var n2 = 200 print("Before : n1 = (n1)") print("Before : n2 = (n2)") (n1, n2) = swap(n1, n2) print("After : n1 = (n1)") print("After : n2 = (n2)") 튜플을 반환하는 방식으로 간단하게 구현가능
  • 48. Swift로 만든 Swap 함수2 import Foundation func swap(inout a: Int, inout b: Int) { let temporaryA = a a = b b = temporaryA } var n1 = 100 var n2 = 200 print("Before : n1 = (n1)") print("Before : n2 = (n2)") swap(&n1, &n2) print("After : n1 = (n1)") print("After : n2 = (n2)")
  • 49. Swift로 만든 Swap 함수2 import Foundation func swap(inout a: Int, inout b: Int) { let temporaryA = a a = b b = temporaryA } var n1 = 100 var n2 = 200 print("Before : n1 = (n1)") print("Before : n2 = (n2)") swap(&n1, &n2) print("After : n1 = (n1)") print("After : n2 = (n2)")
  • 50. Swift로 만든 Swap 함수2 import Foundation func swap(inout a: Int, inout b: Int) { let temporaryA = a a = b b = temporaryA } var n1 = 100 var n2 = 200 print("Before : n1 = (n1)") print("Before : n2 = (n2)") swap(&n1, &n2) print("After : n1 = (n1)") print("After : n2 = (n2)") 게
  • 51. Swift로 만든 Swap 함수2 import Foundation func swap(inout a: Int, inout b: Int) { let temporaryA = a a = b b = temporaryA } var n1 = 100 var n2 = 200 print("Before : n1 = (n1)") print("Before : n2 = (n2)") swap(&n1, &n2) print("After : n1 = (n1)") print("After : n2 = (n2)") 게 inout과 & 연산자를 사용하여 외부값을 참조할 수 있음
  • 52. inout • 매개변수 중에서 함수내에서 변경된 매개변수가 함수 호 출이 종료된 시점에서도 계속 유지되기를 원한다면 inout 키워드를 사용한다 • 매개변수의 값은 함수 안으로 전달되어 변경되고, 함수에 서 나와서 원래의 값을 대체함 • 인수를 입출력 파라메터로 넘길때 변수의 이름 앞에 앰퍼 샌드(&)를 붙인다
  • 53. BONUS : Swift로 만든 Swap -함수사용이 필요하지 않음 import Foundation var n1 = 100 var n2 = 200 print("Before : n1 = (n1)") print("Before : n2 = (n2)") (n1, n2) = (n2, n1) // 튜플사용 print("After : n1 = (n1)") print("After : n2 = (n2)")
  • 54. BONUS : Swift로 만든 Swap -함수사용이 필요하지 않음 import Foundation var n1 = 100 var n2 = 200 print("Before : n1 = (n1)") print("Before : n2 = (n2)") (n1, n2) = (n2, n1) // 튜플사용 print("After : n1 = (n1)") print("After : n2 = (n2)")
  • 55. BONUS : Swift로 만든 Swap -함수사용이 필요하지 않음 import Foundation var n1 = 100 var n2 = 200 print("Before : n1 = (n1)") print("Before : n2 = (n2)") (n1, n2) = (n2, n1) // 튜플사용 print("After : n1 = (n1)") print("After : n2 = (n2)") (Int, Int) 튜플을 (Int, Int) 튜플에 복사함
  • 56. 정리 • Swift의 함수는 튜플타입 반환을 허용한다 • 함수의 두번째 매개변수부터는 반드시 레이블을 붙여야 한다 • Swift 2.0 이상 • 함수이름의 중복정의를 허용한다 • inout을 통해서 함수내에서 매개변수의 수정을 허용한다