Latest web development tutorials

スウィフトクラス

スウィフトクラスは、一般的かつ柔軟な構造を構築するために使用するコードです。

私たちは、クラスのプロパティ(定数、変数)とメソッドを定義することができます。

他のプログラミング言語が異なっていると、スウィフトは、インタフェースと実装ファイルを分離するために、カスタムクラスを作成する必要はありません。 あなたはそれが単一のファイルにクラスを定義することであるしなければならない、システムが自動的に他の外部インターフェイス用のコードを生成します。

ボディタイプと構造比較

スウィフトクラスと構造は共通点が多いです。 一般的なのは、その次のとおりです。

  • 値を格納するために使用される定義された属性
  • 機能性を提供する方法を定義します
  • 定義されたスクリプトは、子会社の値にアクセスするために使用され
  • コンストラクタは、初期値を生成するために使用される定義
  • デフォルトを増加させるために実現される機能を拡張することにより
  • 特定の標準的な機能を提供することで合意に沿って

構造と比較して、クラスには、次の追加機能を持っています。

  • 継承は、あるクラスが別のクラスの特徴を継承することができます
  • 型変換は、クラスのインスタンスのランタイム型チェックと解釈を可能にします
  • 解体は、それが割り当てられたリソースを解放するために、クラスのインスタンスを可能にします
  • 参照カウントは、クラスへの複数の参照を可能にします

構文:

Class classname {
   Definition 1
   Definition 2
   ……
   Definition N
}

クラス定義

class student{
   var studname: String
   var mark: Int 
   var mark2: Int 
}

クラスをインスタンス化します。

let studrecord = student()

import Cocoa

class MarksStruct {
    var mark: Int
    init(mark: Int) {
        self.mark = mark
    }
}

class studentMarks {
    var mark = 300
}
let marks = studentMarks()
print("成绩为 \(marks.mark)")

上記プログラム実行出力は、次のとおりです。

成绩为 300

参照型クラスの属性として

クラスの属性を介してアクセスすることができます 形式は次のとおりです。クラス名のプロパティ名をインスタンス化します。

import Cocoa

class MarksStruct {
   var mark: Int
   init(mark: Int) {
      self.mark = mark
   }
}

class studentMarks {
   var mark1 = 300
   var mark2 = 400
   var mark3 = 900
}
let marks = studentMarks()
print("Mark1 is \(marks.mark1)")
print("Mark2 is \(marks.mark2)")
print("Mark3 is \(marks.mark3)")

上記プログラム実行出力は、次のとおりです。

Mark1 is 300
Mark2 is 400
Mark3 is 900

恒等作用素

クラスは参照型であるため、同時にバックグラウンドでクラスインスタンスを参照する複数の定数及び変数があってもよいです。

2つの定数または変数は、同じクラスのインスタンスを参照しているかどうか決定するためには、スウィフトは、2つの同一の演算子を構築しました:

恒等作用素同一でない演算子
演算子は、次のとおりです。=== 演算子は== :!です
2つの定数または変数は、クラスのリターンの同じインスタンスを参照する場合はtrue 二つの異なる定数または変数参照した場合、クラスのインスタンスは、trueを返します

import Cocoa

class SampleClass: Equatable {
    let myProperty: String
    init(s: String) {
        myProperty = s
    }
}
func ==(lhs: SampleClass, rhs: SampleClass) -> Bool {
    return lhs.myProperty == rhs.myProperty
}

let spClass1 = SampleClass(s: "Hello")
let spClass2 = SampleClass(s: "Hello")

if spClass1 === spClass2 {// false
    print("引用相同的类实例 \(spClass1)")
}

if spClass1 !== spClass2 {// true
    print("引用不相同的类实例 \(spClass2)")
}

上記プログラム実行出力は、次のとおりです。

引用不相同的类实例 SampleClass