func printName() {
print("My Name is Hyeongwon!")
}
printName()
func multiplyTen(param:Int) {
print("\(param * 10)")
}
multiplyTen(param: 5)
func multiplyTwoNum(param1:Int, param2:Int) {
print("\(param1 * param2)")
}
multiplyTwoNum(param1: 10, param2: 4)
func printPrice(가격 price: Int, 갯수 count: Int) {
print("총 \(price * count)원")
}
printPrice(가격: 5000, 갯수: 13)
func printNoNameParam(_ param: String) {
print("내 이름은 \(param)이다.")
}
printNoNameParam("제라드")
func 한글로매개변수출력(_ 매개변수:String) {
print("한글로 출력한 매개변수는 \(매개변수)입니다.")
}
한글로매개변수출력("\"슬픈 눈의 페페\"")
func exceptDefaultPrice(가격 price: Int = 1500, 갯수 count: Int) {
print("총 \(price * count)원")
}
exceptDefaultPrice(갯수: 13)
func totalPrice(price: Int, count:Int) -> Int{
let totalPrice = price * count
return totalPrice
}
let calculatedPrice = totalPrice(price: 1400, count: 7)
print(calculatedPrice)
func printFullname(firstName: String, lastName: String) {
print("\(lastName+firstName)")
}
printFullname(firstName: "형원", lastName: "문")
func printFullnameWithoutParamName(_ firstName: String, _ lastName: String) {
print("\(lastName+firstName)")
}
printFullnameWithoutParamName("형원", "문")
func returnFullname(firstName: String, lastName: String) -> String{
return lastName + firstName
}
returnFullname(firstName: "형원", lastName: "문")
func printTotalPrice(price: Int, count: Int) {
print("Total Price : \(price * count)")
}
func printTotalPrice(price: Double, count: Double) {
print("Total Price : \(price * count)")
}
func printTotalPrice(가격: Int, 갯수: Int) {
print("Total Price : \(가격 * 갯수)")
}
var value = 9
func incrementAndPrint(_ value: inout Int){
value += 1
print(value)
}
incrementAndPrint(&value)
스위프트의 파라미터는 constant로 들어온다. 따라서 inout키워드를 통해 값을 변화시키겠다는 선언이 있어야한다.
inout의 원리
1. 함수가 호출되면, 매개변수로 넘겨진 변수가 복사됩니다.
2. 함수 몸체에서, 복사했던 값을 변화시킵니다.
3. 함수가 반환될 때, 이 변화된 값을 원본 변수에 재할당합니다.
func add(_ a: Int, _ b: Int) -> Int {
return a + b
}
func subtract(_ a: Int, _ b: Int) -> Int {
return a - b
}
var function = add
function(4, 3)
function = subtract
function(4, 3)
func printResult(_ function: (Int, Int) -> Int, _ a: Int, _ b: Int) {
let result = function(a, b)
print(result)
}
printResult(add, 10, 5)
printResult(subtract, 10, 5)