91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

swift篇第三期:類、枚舉、結構體

發布時間:2020-07-11 04:24:03 來源:網絡 閱讀:340 作者:孫婉華_528 欄目:移動開發


首先我們來創建一個類吧,然后在里面聲明屬性與方法

 
class BaseUser {
    var userName:String = "swh"
    var password:String = "123"
    
    //這里面有一個構造方法,其實就類似我們重寫init方法一樣,然后可以加些參數
    //但是我們在聲明該類的時候直接在類名后面接括號就可以了哦
    init(username:String, password:String) {
        self.userName = username
        self.password = password
    }
    
    var name:String {
    //下面是set方法的兩種定義
        set (value) {
            self.userName = value
            println("method set")
        }
//        set {
//            self.userName = newValue
//            println("method set")
//        }
        get {
            println("method get")
            return self.userName
        }
    }
    
    func toString()-> String {
        return "username:\(self.userName):\(self.password)"
    }
}


這時候我們來調用對應的屬性與方法

 
//聲明并初始化
var user = BaseUser(username: "kutian", password: "123456")

println(user.toString())

user.name = "kutian"

println("\(user.name)  \(user.password)")


接下來,我們繼續創建一個類來繼承之前的類

繼承,跟大家想的沒聲明區別

 
class AdminUser: BaseUser {
    var managerModel:String = "爐石傳說"
    
    override func toString() -> String {
        return "爐石傳說"
    }
}

var adminUser = AdminUser(username: "swh", password: "123")

println(adminUser.toString())


好啦,接下來我們創建枚舉

我們可以直接賦值,也可以弄一個方法,讓它返回新值

 
enum Suit:String {
    case Spades = "黑桃", Hearts = "紅桃", Diamonds = "方塊", Clubs = "梅花"
    func toString()-> String {
        switch self {
        case .Spades:
            return "黑桃"
        case .Hearts:
            return "紅桃"
        case .Diamonds:
            return "方塊"
        case .Clubs:
            return "梅花"
        default :
            return "鬼牌"
        }
    }
}


然后調用枚舉里面涉及到的一些方法

這里面有新的rawValue還有!是把任意nil轉為正常的哦

 
var suit = Suit.Hearts

println(suit.rawValue)

let tempSuit = Suit(rawValue: "梅花")

println(tempSuit!.rawValue)


我們也可以新建一個類,并在里面聲明某個屬性是枚舉類型

好啦,我們來創建一個結構體吧

 
struct Hero {
    static var isGirl:Bool = false
    var rank:Rank
    var name:CompassPointType
    
    func toString()-> String {
        return "\(name):\(rank.rawValue)"
    }
}


其實它跟類還是差不多的,只是它傳值的時候并不涉及傳地址哦

然后我們來寫個協議吧

 
protocol SimpleProtocol {
    var value:String {get}
    
    func toString()-> String
    mutating func update()
}
 
protocol BaseProtocol {
    func equal()-> Bool
}

class SuperClass {
    var name:String = "swh"
}


接下來創建一個類來遵循并實現這個協議

 
class SubClss: SuperClass, SimpleProtocol, BaseProtocol {
    var value:String = "defalut"
    
    func toString()-> String {
        return value
    }
    
    func update() {
        value = "new value"
    }
    
    func equal() -> Bool {
        return false
    }
}


再接下來,我們再寫一個擴展好了

 
class Rect {
    var width:Int = 50
    var height:Int = 100
}

extension Rect:BaseProtocol {
    func area()-> Int {
        return width * height
    }
    
    func equal() -> Bool {
        return height == width
    }
}
 
extension Int {
    func toString()-> String {
        return "你猜"
    }
}

類和協議就比較好理解了,與O-C沒有什么區別的哦


OK,就這么多咯


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南漳县| 承德市| 高碑店市| 成武县| 景泰县| 尤溪县| 江油市| 永胜县| 鹤庆县| 雅安市| 河源市| 即墨市| 云霄县| 西乌珠穆沁旗| 昌图县| 佛学| 射洪县| 东光县| 柳江县| 出国| 镇江市| 庆元县| 大理市| 无极县| 治多县| 克什克腾旗| 民丰县| 彩票| 肇东市| 汝州市| 镇雄县| 武安市| 长岭县| 宁南县| 当阳市| 揭西县| 柘城县| 延寿县| 任丘市| 仁怀市| 邹平县|