func dice() -> Int {
let num = 1 + arc4random_uniform(6)
return Int(num)
}
func hello() {
print("hello")
}
or
func hello() -> Void {
print("hello")
}
- guard-else ( 条件を満たさないときに実行される )
func half(num: Double){
- if (num < 10) {
+ guard num>=10 else {
return
}
let halfNum = num/2
print("\(num)の半分は\(halfNum)")
}
half(num: 25) // 25.0の半分は12.5
half(num: 9)
half(num: 12) // 12.0の半分は6.0
- defer statement ( 処理(ブロック)を抜ける前にかならず実行する )
func half(num: Double){
+ defer {
+ print("計算終了")
+ }
guard num>=10 else {
return
}
let halfNum = num/2
print("\(num)の半分は\(halfNum)")
}
half(num: 25)
// 25.0の半分は12.5
// 計算終了
half(num: 9)
// 計算終了 <- half(num: 9)は中断されるが、defer文で書いているので実行される
half(num: 12)
// 12.0の半分は6.0
// 計算終了
func sum(numbers: Double...) -> Double {
var total: Double = 0.0
for num in numbers {
total += num
}
return total
}
print(sum(numbers: 4, 5, 6, 7))
- func pricel(ninzu: Int, tanaka: Int) -> Int {
+ func pricel(ninzu: Int = 1, tanaka: Int = 250) -> Int {
let result = tanaka * ninzu
return result
}
print(pricel(ninzu: 3, tanaka: 1300))
- func pricel(ninzu: Int, tanaka: Int) -> Int {
+ func pricel(ninzu: Int, tanaka: Int, rate: Double) -> (hoge: Int, fuga: Double) {
let result = tanaka * ninzu
+ let updatedResult = Double(result) * rate
- return result
+ return (result, updatedResult)
}
- print(pricel(ninzu: 3, tanaka: 1300))
+ print(pricel(ninzu: 3, tanaka: 1300, rate: 1.8).hoge)
- 関数の多重定義( 同名の関数でも引数名や引数の個数が違うと別の関数として扱われる。)
func calc(a: Int, b: Int) -> Int {
return a+b
}
func calc (c: Int, d: Int) -> Int {
return c*d
}
func calc(a: Int, b: Int, c: Int) -> Int {
return (a+b)*c
}
print(calc(a: 2, b: 3))
print(calc(c: 2, d: 3))
print(calc(a: 2, b: 3, c: 4))
- func pricel(ninzu: Int, tanaka: Int) -> Int {
+ func pricel(hoge ninzu: Int, fuga tanaka: Int) -> Int {
let result = tanaka * ninzu
return result
}
- print(pricel(ninzu: 3, tanaka: 1300))
+ print(pricel(hoge: 3, fuga: 1300))
- func pricel(hoge ninzu: Int, fuga tanaka: Int) -> Int {
+ func pricel(_ ninzu: Int, _ tanaka: Int) -> Int {
let result = tanaka * ninzu
return result
}
- print(pricel(ninzu: 3, tanaka: 1300))
+ print(pricel(3, 1300))
reference from
https://www.amazon.co.jp/dp/4800711843