반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- lookML
- openAI
- nocode
- 파이썬
- 데이터모델링
- 데이터분석
- 노코드앱
- app
- Python
- 엑셀
- Looker
- 데이터시각화
- 앱만들기
- 구글스프레드시트
- 인공지능
- 샤딩
- 앱시트
- Ai
- 어플
- 데이터저장
- 휴가관리
- 자동화
- 데이터
- 자바
- Java
- 노코드
- data
- appsheet
- 어플만들기
Archives
- Today
- Total
공부한 것 꼭꼭 씹어먹기
함수 본문
반응형
func hello(name: String) -> String {
return "Hello~~ " + name
}
let message = hello(name: "Zella")
// 파라미터에 여러개 넣기(가변 매개변수) 한 함수당 한 개 쓸 수 있음
func addNumbers(numbers: Int...) -> {
var sum = 0
for num in numbers {
sum += num
}
return sum
}
addNumbers(numbers: 1,2,3,4,5)
// 반환값 여러개 받기
func myInfo() -> (name: String, weight: Int){
return ("은혜", 47)
}
let info = myInfo()
print(info.name)
// Argument label : 입력값에 대한 설명(파라미터 이름은 간략하게 쓰고 대신 아규먼트레벨에 자세한 설명을 쓴다)
func calculate(multiflyFirstNumber num1: Int, bySecondNumber num2: Int) -> Int {
return num1 * num2
}
calculate(multiflyFirstNumber: Int, bySecondNumber: Int)
// Argument label 안쓰고 싶을때는 주로 이렇게 생략해서 쓴다
func calculate(_ num1: Int, _ num2: Int) -> Int {}
calculate(2,4) // argument label을 안쓰고 파라미터 값만 써줘도 됨
// inout 키워드 : 파라미터는 let이라서 함수 안에서 값을 변경할 수 없음. 바꿔서 쓰고 싶을때 inout을 써준다
func addTwoNumber(num1: Int, num2: inout Int) -> Int {
num2 = 7 // inout키워드를 안쓰면 여기서 에러가 난다. let에 값을 재할당 했기 때문에
return num1 + num2
}
var test1 = 2
var test2 = 3
addTwoNumber(num1: test1, num2: &test2)
print(test2) // 7이 나온다.
// num1에는 test1의 값이 복사되서 들어감. 즉 num1과 test1의 주소값은 다르다.(call by value)
// num2에는 test2의 메모리 주소(&test2)가 들어감. 즉 num2와 test2는 같은 주소를 공유한다.
// 그래서 addTwoNumber 함수 안에서 num2 값을 바꿨을때 test2의 값도 바뀐다.(call by reference)
/** TIP **/
addTwoNumber(num1: test1, num2: &test2)
// 그냥 이렇게 하면 에러 나옴. 반환값을 받지 않았다며.. 그럴때는
_ addTwoNumber(num1: test1, num2: &test2) // 앞에 underscore 써주면 된다!
패스트캠퍼스 ios 앱 개발 강의를 듣고 공부한 내용을 정리하였습니다.
반응형
'Swift 기초' 카테고리의 다른 글
상속 (0) | 2021.10.27 |
---|---|
property (0) | 2021.10.26 |
class, struct, enum (0) | 2021.10.25 |
optional (0) | 2021.10.24 |
switch, for, array, dictionary, set (0) | 2021.10.24 |
Comments