티스토리 뷰

나름 프로그래밍?/Swift

Function

-Dong- 2015. 5. 25. 23:00

  드디어 함수

  일단의 기본개념 격인 C와 별다를바 없는데서 시작한다


  기본적으로(코드 하이트 찾아서 적용해봄 으아;;)


  위와 같이 함수이름과 파라미터와 리턴형을 정의해서 사용할 수 있다

  몇가지 더 다양한 형태로



  이런식으로 외부에서 받을 이름과 내부에서 쓰일 이름을 달리 가져갈 수도 있고


  이렇게 일치 시켜서 사용할 수도 있다.


  여기까지는 일반적으로 파라미터 받고 반환하는 형태인데 이제 쫌 특이하게 반환 형태를 하나만 가져가는게 아니라 여러개를 반환하는 것도 가능하다

  반환하는 변수에 이름을 붙이지 않는 것도 가능하다

  그리고 보다보니 이전에 C++(이었나???) 에서 쓰던 Default 변수 형도 가능하다는 것을 발견


  이런식으로 사용도 가능하다 (# 붙이는건 Default Parameter 랑 동시에 안된다면서 빼버리더라...)

  

  그리고 한창 포인터 공부할때 변수의 주소값을 넘겨서 해당 주소값에 바로 값을 써 버리는 방법으로 변수를 넘기는데 넘기는 Swift 에서는 다음과 같이 사용한다


  inout 만 붙여주면 된다 별거 없다


  이제는 Objective-C 로 작업할때 주구장창 쓰이는 블럭코딩 같은 애가 등장한다

  (제대로 된건 Closure 라고 하는건 아직 진도가...)

  기존에 썼던 방법이라고 해서 슥 볼려니 헷갈려 죽겠더라.. 차근차근 해보자면


  일단 개념적으로 함수는 파라미터를 받아서 결과값을 반환하는 구조이다

  이런 기본 구조를 갖도 움직이다 보니 (Int, Int)->Int 와 같은 형태로 정의가 가능하다(마치 변수처럼)

  이런 개념을 가지고 가면 함수의 파라미터 부분에 변수처럼 함수도 쓰임이 가능하다


  뭔가 슬슬 우와~ 이게 가능하면 이렇게도 되겠고 저렇게도 되겠고 싶어서 머리가 슬슬 아파오기 시작할 법도 하다(?)

  위와 같은 경우는 파라미터로 함수를 받았다면 이제는 반환하는 형태가 함수인 것을 보자


  그럴듯한 예제의 경우가 있어서 그런식으로 쓰고 싶은데... 대충 쓰임이나 살펴보자면 이런식으로 쓰는 것도 가능하다

  당연히 myValue 는 sum 으로 작동하고 myValue2 는 multi 로 작동한다


  마지막으로 함수 안에서 함수를 정의하는 것도 가능하다


  결과는 함수를 반환하는 형태에서 쓰인것과 동일하다


  Objective-C 에서 신나게 블럭코딩이라고 쓰고 있었는데 아무래도 역시 새로나온 언어는 새로나온 건가 보다...





'나름 프로그래밍? > Swift' 카테고리의 다른 글

Enum  (0) 2015.08.03
Closure  (0) 2015.06.02
Dictionary  (0) 2015.05.19
Array  (0) 2015.05.19
optional  (0) 2015.05.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함