π ν¨μ
π ν¨μμ λ©μλ
λ©μλ : ꡬ쑰체, ν΄λμ€, μ΄κ±°ν λ± νΉμ νμ μ μ°κ΄λμ΄ μ¬μ©νλ ν¨μ
ν¨ μ : λͺ¨λ μ 체μμ μ μμ μΌλ‘ μ¬μ©ν μ μλ ν¨μ
π‘ ν¨μμ λ©μλλ μ μνλ μμΉμ νΈμΆλλ λ²μλ§ λ€λ₯Ό λΏ, μ μνλ ν€μλμ ꡬννλ λ°©λ²μ κ°λ€.
π ν¨μμ μ μμ νΈμΆ
ν¨μλ μκ΄νΈ()λ₯Ό μλ΅ν μ μλ€.
μ€μννΈ ν¨μλ μ¬μ μ(μ€λ²λΌμ΄λ)μ μ€λ³΅ μ μ(μ€λ²λ‘λ)λ₯Ό λͺ¨λ μ§μνλ€.
π‘λ°λΌμ 맀κ°λ³μμ νμ μ΄ λ€λ₯΄λ©΄ κ°μ μ΄λ¦μ ν¨μλ₯Ό μ¬λ¬ κ° λ§λ€ μ μκ³ , 맀κ°λ³μμ κ°μκ° λ¬λΌλ κ°μ μ΄λ¦μ ν¨μλ₯Ό λ§λ€ μ μλ€.
ν¨μλ₯Ό μ μνλ ν€μλ : func
λ°νμ μν ν€μλ : return
ν¨μμ΄λ¦μ μ§μ ν΄μ€ ν 맀κ°λ³μλ μκ΄νΈ() λ‘ κ°μΈμ€λ€.
λ°ννμ μ λͺ μνκΈ° μ μλ -> λ₯Ό μ¬μ©νμ¬ μ΄λ€ νμ μ΄ λ°νλ κ²μΈμ§ λͺ μν΄μ€λ€.
func ν¨μμ΄λ¦(맀κ°λ³μ...) -> λ°ν νμ
{
μ€νꡬ문
return λ°ν κ°
}
κΈ°λ³Έ ννμ ν¨μ μ μμ μ¬μ©
func hello(name: String) -> String {
return "Hello \(name)!"
}
let helloJenny: String = hello(name: "Jenny")
print(helloJenny) // hello Jenny!
func introduce(name: String) -> String{
"μ μ΄λ¦μ " + name + μ
λλ€."
}
let introduceJenny: String = introduce(name:"Jenny")
print(introduceJenny) // μ μ΄λ¦μ μ λμ
λλ€.
ν¨μ λ΄λΆμ μ½λκ° λ¨ νμ€μ ννμ΄κ³ , κ·Έ ννμ κ²°κ΄κ°μ νμ μ΄ ν¨μμ λ°ν νμ κ³Ό μΌμΉνλ€λ©΄
return ν€μλλ₯Ό μλ΅ν΄λ κ·Έ ννμ κ²°κ΄κ°μ΄ ν¨μμ λ°νκ°μ΄ λ©λλ€.
π 맀κ°λ³μμ μ λ¬μΈμ
맀κ°λ³μλ ν¨μλ₯Ό μ μν λ μΈλΆλ‘λΆν° λ°μλ€μ΄λ μ λ¬ κ°μ μ΄λ¦μ μλ―Ένλ€.
μ λ¬μΈμ, νΉμ μΈμλ ν¨μλ₯Ό μ€μ λ‘ νΈμΆν λ μ λ¬νλ κ°μ μλ―Ένλ€. μλ₯Όλ€μ΄ hello(name:)ν¨μμμ
맀κ°λ³μλ nameμ΄κ³ μ€μ μ¬μ©μ μ λ¬λ°λ κ°μΈ "Jenny"κ° μ λ¬μΈμμ΄λ€.
π 맀κ°λ³μ
맀κ°λ³μκ° μ¬λ¬κ°μΈ ν¨μμ μ μμ μ¬μ©
func sayHello(myName: String, yourName: String) -> String{
return "Hello \(yourName)! I'm \(myName)"
}
print(sayHello(myName:"yagom", yourName:"Jenny"))
// Hello Jenny! I'm yagom
π‘ 맀κ°λ³μ κΈ°λ³Έκ°
μ€μννΈμ ν¨μμμλ 맀κ°λ³μλ§λ€ κΈ°λ³Έκ°μ μ§μ ν μ μλ€. μ¦, 맀κ°λ³μκ° μ λ¬λμ§ μμΌλ©΄ κΈ°λ³Έκ°μ μ¬μ©νλ€.
// times 맀κ°λ³μκ° κΈ°λ³Έκ° 3μ κ°λλ€.
func sayHello(_ name: String, times: Int = 3) -> String{
var result: String=""
for _ in 0..<times{
result+="Hello \(name)!" + " "
}
return result
}
// times 맀κ°λ³μμ μ λ¬ κ°μ λκ²¨μ£Όμ§ μμ κΈ°λ³Έκ° 3μ λ°μν΄μ 3λ² μΆλ ₯νλ€.
print(sayHello("Hana")) // Hello Hana! Hello Hana! Hello Hana!
// times 맀κ°λ³μμ μ λ¬κ°μ 2λ‘ λ겨주μκΈ° λλ¬Έμ μ λ¬ κ°μ λ°μν΄μ 2λ² μΆλ ₯νλ€.
print(sayHello("Joe",times:2)) // Hello Joe! Hello Joe!
π‘ κΈ°λ³Έ 맀κ°λ³μμ μ μΆλ ₯ 맀κ°λ³μ
맀κ°λ³μλ‘ λͺ κ°μ κ°μ΄ λ€μ΄μ¬μ§ λͺ¨λ₯Ό λ, κ°λ³ 맀κ°λ³μλ₯Ό μ΄μ©ν μ μλ€.
ν¨μλ§λ€ κ°λ³ 맀κ°λ³μλ νλλ§ κ°μ§ μ μλ€.
π‘λ°νμ΄ μλ ν¨μ
ν¨μλ νΉμ μ°μ°μ μ€νν ν κ²°κ΄κ°μ λ°ννλ€. κ·Έλ¬λ κ°μ λ°νμ΄ νμνμ§ μμ ν¨μλ μλ€.
κ·Έλ΄λλ λ°ν κ°μ΄ μλ ν¨μλ₯Ό λ§λ€μ΄μ£Όλ©΄ λλ€. λ§μ½ λ°ν κ°μ΄ μλ νμλΌλ©΄ λ°ννμ μ 'μμ'μ μλ―Ένλ Voidλ‘ νκΈ°νκ±°λ
μμ λ°ν νμ ννμ μλ΅ν΄λ λλ€.
μ¦, λ°ν νμ μ΄ Void μ΄κ±°λ μλ΅λμ΄ μλ€λ©΄ λ°ν κ°μ΄ μλ ν¨μμ΄λ€.
λ°ν κ°μ΄ μλ ν¨μμ μ μμ μ¬μ©
func sayHelloWorld() {
print("Hello, world!")
}
sayHelloWorld() // Hello, World!
func sayHello(from myName: String, to name: String){
print("Hello \(name)! I'm \(myName)")
}
sayHello(from:"yagom", to:"Mijeong") // Hello Mijeong! I'm yagom
func sayGoodBye() -> Void{
print("Good Bye")
}
sayGoodBye() // GoodBye
π‘ λ°μ΄ν° νμ μΌλ‘μμ ν¨μ
μ€μννΈ ν¨μλ μΌκΈ κ°μ²΄μ΄λ―λ‘ νλμ λ°μ΄ν° νμ μΌλ‘ μ¬μ©ν μ μλ€.
ν¨μλ₯Ό νλμ λ°μ΄ν° νμ μΌλ‘ λνλ΄λ λ°©λ²
( 맀κ°λ³μ νμ μ λμ΄ ) -> λ°ν νμ
func sayHello(name: String, times: Int) -> String{
...
}
// sayHello ν¨μμ νμ
μ (String, Int) -> String μ
λλ€.
func sayHelloToFriends(me: String, names: String...) -> String{
...
}
// sayHelloToFriends ν¨μμ νμ
μ (String,String...) -> String μ
λλ€.
// λ§μ½ 맀κ°λ³μλ λ°ν κ°μ΄ μλ€λ©΄ Void ν€μλλ₯Ό μ¬μ©νμ¬ μμμ λνλΈλ€.
func sayHelloWorld(){
...
}
// sayHelloWorld ν¨μμ νμ
μ (Void) -> Void μ
λλ€.
λ€μμ λͺ¨λ κ°μ ννμ΄λ€.
- (Void) -> Void
- () -> Void
- () -> ()
π μ€μ²© ν¨μ
μ€μννΈλ λ°μ΄ν° νμ μ μ€μ²©μ΄ μμ λ‘λ€.
μλ₯Όλ€μ΄ μ΄κ±°ν μμ λ νλμ μ΄κ±°νμ΄ λ€μ΄κ° μ μκ³ , ν΄λμ€ μμ λ λ€λ₯Έ ν΄λμ€κ° λ€μ΄κ° μ μλ€.
π μ’ λ£λμ§ μλ ν¨μ
λΉλ°ν ν¨μ ( λΉλ°ν λ©μλ ) : μ€μννΈμμ μ’ λ£(return) λμ§ μλ ν¨μ
μ’ λ£λμ§ μλλ€ = μ μμ μΌλ‘ λλμ§ μλλ€
λΉλ°ν ν¨μλ μ΄λμλ νΈμΆμ΄ κ°λ₯νκ³ guard ꡬ문μ else λΈλ‘μμλ νΈμΆν μ μλ€.
λΉλ°ν λ©μλλ μ¬μ μλ ν μ μμ§λ§, λΉλ°ν νμ μ΄λΌλ κ²μ λ³κ²½ν μ μλ€.
λΉλ°ν ν¨μ ( λ©μλ )λ λ°ν νμ μ Never λΌκ³ λͺ μν΄μ£Όλ©΄ λλ€.
π λ°ν κ°μ 무μν μ μλ ν¨μ
κ°λ ν¨μμ λ°ν κ°μ΄ κΌ νμνμ§ μμ κ²½μ°λ μλ€.
νλ‘κ·Έλλ¨Έκ° μλμ μΌλ‘ ν¨μμ λ°ν κ°μ μ¬μ©νμ§ μμ κ²½μ°, μ»΄νμΌλ¬κ° ν¨μμ κ²°κ³Ό κ°μ μ¬μ©νμ§ μμλ€λ κ²½κ³ λ₯Ό λ³΄λΌ μ μλ€.
μ΄λ° κ²½μ° ν¨μμ λ°ν κ°μ 무μν΄λ λλ€λ @discardableResult μ μΈμ νλ©΄ λλ€.
func say(_ something: String) -> String{
print(something)
return something
}
@discardableResult func discadableResultSay(_ something: String) -> String{
print(something)
return something
}
// λ°ν κ°μ μ¬μ©νμ§ μμμΌλ―λ‘ μ»΄νμΌλ¬κ° κ²½κ³ λ₯Ό νμν μ μλ€.
say("hello") // hello
// λ°ν κ°μ μ¬μ©νμ§ μμ μ μλ€κ³ 미리 μλ ΈκΈ° λλ¬Έμ
// λ°ν κ°μ μ¬μ©νμ§ μμλ μ»΄νμΌλ¬κ° κ²½κ³ νμ§ μμ΅λλ€.
discardableResultSay("hello") // hello
'π iOS > κΈ°μ΄λ¬Έλ²' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift κΈ°μ΄] ꡬ쑰체μ ν΄λμ€ (0) | 2023.01.05 |
---|---|
[Swift κΈ°μ΄] μ΅μ λ (0) | 2023.01.04 |
[Swift κΈ°μ΄] νλ¦μ μ΄ (0) | 2022.12.31 |
[Swift κΈ°μ΄] μ°μ°μ (0) | 2022.12.30 |
[Swift κΈ°μ΄] λ°μ΄ν° νμ κ³ κΈ (0) | 2022.12.29 |