iOS
Swift - 4 Method(함수)
Jihyeonnn
2024. 10. 8. 06:27
앞서 포스팅 했던 내용들을 잠깐 되짚어 보고 가겠다.
var x = 10
print(type(of:x)) //Int
x = 20
print(x) //20
자료형은 초기값을 부여하지 않을 때에만 선언한다.
문자열과 변수의 값을 함께 출력하고 싶을 때는,
print("x의 값은=\(x)")
이와 같은 형태로 작성하면 된다.
let 형태로 변수를 선언하면, 그 값을 수정할 수 없다.
let names = ["A","B","C","D"]
for name in names[2...]{//[...2], [..<2]
print(name)
}
//C
//D
위의 소스는 반 열린 범위 연산자를 사용하여 index 2부터 출력한다.
let defaultAge = 1
var age : Int?
age = 3
print(age) //Optional(3)
var myAge = age ?? defaultAge
print(myAge) //3
var x : Int? = 1
var y = x ?? 0
print(y) //1
옵셔널 변수 예시다. 두 번째 print문에서 age가 nil이 아니기 때문에 언래핑된 값이 출력된다.
for i in 1..<10 {
if i > 5 {break} //if문 다음 실행 코드가 한 줄이라도 {} 필수.
print(i)
}
다중 if-else문 예제이다.
let weight = 60.0
let height = 170.0
let bmi = weight / (height*height*0.0001)
var body = ""
if bmi >= 40 { body = "3단계 비만" }
else if bmi >= 30 && bmi < 40 { body = "2단계 비만" }
else if bmi >= 25 && bmi < 30 { body = "1단계 비만" }
else if bmi >= 18.5 && bmi < 25 { body = "정상" }
else { body = "저체중" }
print("BMI:\(bmi), 판정:\(body)")
switch-case문으로 변경한 소스이다. where을 사용하였다.
var weight = 60.0
var height = 170.0
var bmi = weight / (height * height * 0.0001)
var body = ""
switch bmi {
case _ where bmi >= 40:
body = "3단계 비만"
case _ where bmi >= 30:
body = "2단계 비만"
case _ where bmi >= 25:
body = "1단계 비만"
case _ where bmi >= 18.5:
body = "정상"
default:
body = "저체중"
}
print("BMI:\(bmi), 판정:\(body)")
let myTuple = (10, 12.1, "Hi")
let (myint, MyFloat, myString) = myTuple
var (myInt, _, myString) = myTuple //튜플 값 선택적으로 무시
let myTuple = (count: 10, length: 12.1, message: "Hi")
print(myTuple.message, myTuple.2)
//실행 결과: Hi Hi
위와 같이 생성 시 각 값에 이름을 할당할 수 있다.
typealias Void = () //아무 내용도 없는 튜플이다. typealias 새로운 자료형명 = 기존 자료형명
함수의 선언 방법
func <함수명> {<매개변수 이름>: <매개변수 타입>, <매개변수 이름>: <매개변수 타입>, ...}
-> <반환값 타입> {
//함수 코드
}
- Swift에서는 위의 형식으로 함수를 선언한다.
C
int gop(int x, int y) {
return(x*y);
}
gop(10,20);
Swift
func gop(x : Int, y : Int) -> Int {
return(x*y)
}
print(gop(x:10, y:20)) //200
print(type(of:gop)) //(Int, Int) -> Int
C언어와의 차이점은 한 눈에도 할 수 있다.
return 하지 않으면 타입(void)와 '->'는 생략이 가능하다.
C
void sayHello() {
printf("Hello");
}
Swift
func sayHello() {
print("Hello")
}
print(type(of:sayHello)) //() -> ()
func message(name: String, age: Int) -> String {
return("\(name) \(age)")
} //하나의 문자열과 하나의 정수를 매개변수로 받아서 문자열을 반환한다.
Swift 함수의 변수명
Switf에는 외부 매개변수명과 내부 매개변수명이 따로 존재한다.
그 예시를 들어 보겠다.
func add(x: Int, y: Int) -> Int {
return(x+y)
}
print(add(x:10, y:20))
func add(first x: Int, second y: Int) -> Int { //fisrt: 외부 매개변수명, x: 내부 매개변수명
return(x+y)
}
print(add(first:10, second:20))
func add(_ x: Int, _ y: Int) -> Int {
return(x+y)
}
print(add(10, 20)) //다른 언어처럼 호출 가능하지만 비추천
func add(_ x: Int, with y: Int) -> Int {
return(x+y)
}
print(add(10, with:20)) //해당 방식으로 많이 사용.
모든 출처: youtube - smile han