m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

swiftの学習(関数)

関数

スクリプトっぽい書き方だけど型を指定できるようになったのでこの辺はプログラム言語のイメージがあります。普段、phpとかのスクリプト言語を使用してばかりなので型を定義するのには慣れていない。

関数サンプル
//
//  main.swift
//

import Foundation

// 関数定義
func test1_func(data1:String) {
    println(data1)
    println("call test1_func")
}

// 呼び出し
test1_func("aaaa")

// 関数定義
func test2_func(data1:Int, data2:Int)->Int{
    return data1 * data2
}

var a = test2_func(10, 20)
println(a)

※定義はfunc、引数や戻り値には型を定義する必要があります

戻り値は複数の値を返すことができる
//
//  main.swift
//

import Foundation

// 複数の値を変える関数
func test3_func(data1:Int, data2:Int)->(Int, Int, Int){
    return (data1, data2, data1 * data1)
}

var b = test3_func(50, 40)
println(b)
println(b.0)
println(b.1)
println(b.2)

※返り値の場所に括弧で型を指定することでタプルというもので複数の値を返却できる

引数を可変にする
//
//  main.swift
//

import Foundation

// 引数を可変
func test3_func(params:Int...)->Int{
    
    var result = 0;
    for param in params {
        result += param
    }
    
    return result
    
}

// 引数なし
println(test3_func())

// 1つ
println(test3_func(100))

// 3つ
println(test3_func(100, 50, 1200))
関数の中で関数を定義
//
//  main.swift
//

import Foundation

// 関数の中に関数を定義
func test4_func(data1:String)->String{
    
    // 関数を定義
    func test4_sub()->String{
        return "ほげ"
    }
    
    return data1 + " " + test4_sub()
}

// 呼び出し
println(test4_func("テスト"))

所感

結構覚えることが多いような気がする。
文法を覚えることに集中しすぎたらモチベーションが下がってしまうので下がらないように調整することが必要な感じ。
しなくなったら忘れるしいろいろ大変そうだな〜(^-^)

swiftでもobjective-cでもアプリ開発での画面遷移とか同じなんかな〜
同じだったらxcodeの学習はobjective-cの方で学習するのもいいかも…