亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

四会市| 湟中县| 新乡市| 乌恰县| 武陟县| 滨海县| 宁城县| 平乡县| 盈江县| 远安县| 宁武县| 长顺县| 如皋市| 景泰县| 五华县| 皮山县| 东港市| 郯城县| 思南县| 大连市| 双桥区| 桐梓县| 赫章县| 天柱县| 镇远县| 揭东县| 文昌市| 贺州市| 红安县| 长岭县| 阜平县| 昭苏县| 美姑县| 常宁市| 稻城县| 扶余县| 客服| 惠州市| 永丰县| 平阳县| 麻栗坡县|