m_shige1979のときどきITブログ

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

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

https://github.com/mshige1979

swiftの学習(structで複数のデータをまとめる)

Dictionaryとは別

あれは連想配列だがstructは構造体としての動きができるのかな?
vb6のtypeとかc言語のstructと考えればいいかも

基本

//
//  main.swift
//

import Foundation

struct sample1{
    var id: Int = 0
    var name: String = ""
    var age: Int = 0
}

var a1 = sample1()
a1.id = 10
a1.name = "hoge"
a1.age = 29

※最初に初期値を設定しておかないとエラーが起こる

initで初期化処理を設定することができる
//
//  main.swift
//

import Foundation

struct sample1{
    var id: Int
    var name: String
    var age: Int
    
    init(){
        id = 0
        name = ""
        age = 0
    }
}

var a1 = sample1()
a1.id = 10
a1.name = "hoge"
a1.age = 29
メソッドも指定
//
//  main.swift
//

import Foundation

struct sample1{
    
    private var id:Int
    private var name:String
    private var age:Int
    
    init(){
        id = 0
        name = ""
        age = 0
    }
    
    func test1(){
        println("aaaaaaaa")
    }
}

var a1 = sample1()
a1.id = 100
a1.name = "hoge"
a1.age = 29

println(a1.test1())
structsの配列を用意して動的に追加し、出力
//
//  main.swift
//

import Foundation

struct sample1{
    
    private var id:Int
    private var name:String
    private var age:Int
    
    init(){
        id = 0
        name = ""
        age = 0
    }
    
    func test1(){
        println("aaaaaaaa")
    }
}

// 空の配列を定義
var a1 = [sample1]()

// sample1のデータを用意
var b = sample1()

// data1
b.id = 10
b.name = "aaaaa"
b.age = 12
a1.append(b)

// data2
b.id = 20
b.name = "bbbbb"
b.age = 41
a1.append(b)

// data3
b.id = 30
b.name = "xxxxx"
b.age = 31
a1.append(b)

// リスト出力
for (_var) in a1 {
    println("id=\(_var.id), name=\(_var.name), age=\(_var.age)")
}

所感

連想配列やクラスを使用するとか違う方法でのデータの保持になるので管理は大変かもしれない。
classと配列以外の方法が出てきたので使えるかもしれない。