*메서드 = 클래스 / 구조체 / 열거형 안에서 선언된 함수
-함수 선언
func 함수이름(변수이름: 타입, 변수이름: 타입 ...(없으면 걍 가로안 비움)) -> 리턴타입(Void 등등) {
함수 구현
return 값 (void면 return만 쓰거나 암것도 안씀)
}
-호출
함수이름(변수이름: 값, 변수이름: 값)
호출하고 값은 버리고 싶으면
_=a(~) 하면 됨 ! _ 에 값을 받으면 되는거얌
-func ff (a: Int, b: String){~ }
여기서 a,b는 매개변수인데 함수내에서 이 매개변수들은 상수로 취급됨. (let 임) 즉 값을 바꿀 수 없다~
그래서 머 바꾸고싶으면
굳이 그러고싶으면
새로운 a,b 변수를 만든 뒤 대입해서 그걸바꾸면됨
var a=a
var b=b 하면 된다는 말씀 (=섀도 복사본)
-func ff (a:Int ) {~ }
여기서 a는 매개변수인데, 지역매개변수(함수내에서쓰이게되는변수이름) 이자 외부매개변수명(호출할 때 부르는 이름)이 된다
근데 만약 외부 매개변수명 다르게하고시퍼
1. 없애고 싶다
-> func ff (_ a: Int) { ~ }
이런식으로 변수이름앞에 _ 를 붙여주면 됩니다
그럼호출할 때 ff(a: 3) 이렇게 안주고 ff(3) 이렇게 줘야하게 됩니다~.~
2. 이름을 바꾸고 싶다
전달인자 레이블 -> 함수 호출시 매개변수 역할 더 명확히하거나 함수 사용자의 입장에서 표현하고자할때 사용,
함수의 중복정의도 가능 굳
func 이름(전달인자 이름: 타입)->{}
func greeting(to friend: String, from me:String){ (그리팅 to fring까지모두 함수의 이름으로취급->중복정의조음)
print( "\(friend) and \(me)" ) -> 함수 내에선 매개변수 이름을 사용
}
greeting(to: "저니", from: "조니") ->함수 호출시에는 앞에 쓴 이름으로 사용!
-매개변수 기본값 (디폴트) 설정 -> 매개목록 목록 중 뒤쪽에 위치하는게 굳
func 함수이름(a: Int, me: String="juny") {
어쩌구
}
호출시는 함수이름(a: 3, me: dfs) 근데이때 me를 안주게되면
함수이름(a:3) 이렇게만 주면 juny로 쓰이는거! 말그대로 기본값!!
-여러 결괏값 반환하기 -> 튜플 !
func 이름(매개변수) -> (a: Int, b: String) { ~return (~, ~) }이렇게하묜 됩니드라호출시let k=함수호출 -> k는 그 튜플을 담는 변수가 됨k.a, k.b 이렇게 각 변수 쓸 수 있음
-가변 매개변수 -> 몇개 올지모를때사용
func 함수이름(변수이름: 타입 ...) -> 리턴타입 {}
요로캐하면됩니다 마지막변수에 ... 찍으면 여려개받을수잇읍니다 한 함수당 한번입니당
부를 때
함수이름(변수이름: 값,값,값,값) 이런식으로 주면 댑니다
이때 nil넣거나 전달인자 값에 아무것도안넣으면 오류뜸
아무것도안넣고싶으면 걍 변수이름 안쓰면됨
-데이터 타입으로서의 함수
함수=객체 !! -> 매개변수를 통해 전달가능!
함수의 타입표현
(매개변수1 타입ㅇ, 매개변수 2 타입 ...)->반환타입
ex1 변수생성
var a: (String, String)->Void = greeting(to:from:)
( 걍 var a=greeting 해도 되는듯)
ex2 함수 매개변수로
func newfunc(function: (Stirng, String)->Int) { ~ }
func(function: greeting(friend:me:))
func(function: a)
깔깔 easy
'draft > swift' 카테고리의 다른 글
class (0) | 2021.05.12 |
---|---|
제어흐름 -> 반복제어 흐름(반복문)/조건부 흐름 제어(if) (0) | 2021.05.12 |
기본 개념정리 (0) | 2021.05.04 |