• 博客园Logo
  • 首页
  • 新闻
  • 博问
  • 会员
  • 闪存
  • 班级
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 简洁模式 ... 退出登录
    注册 登录
Hello World
This is the first demo for each programming language
            管理     

Swift语言之对象实例化

在众多流行的面向对象的编程语言里,实例化一般调用实例构造器,当然某些情况下也会通过反射来实现实例化操作;在Swift中,我们要初始化一个对象实例的时候会有很多选择,例如下面有一个名为People的类,其仅包含了一个实例化构造器:

class People: Printable {
    let name: String
    let age: Int
    
    required init(name:String, age:Int){
        self.name = name
        self.age = age
    }
    
    var description: String {
        return "My name is \(name) and my age is \(age)"
    }
}

最简单实例化操作:

var nick = People(name: "Nick", age: 30)

通过类型别名来实现一个变形:

typealias PeopleType = People
var nick = PeopleType(name: "Nick", age: 30)

如果能得到People的MetaType,我们还可以这样做:

var peopleType: People.Type = People.self
var nick: People = peopleType(name: "Nick", age: 30)

当然我们也可以直接调用People.self的init方法来初始化实例:

var nick: People = People.self.init(name: "Nick", age: 30)

在这种情况下,我们可以省略掉self,直接在People上调用init方法就可以了:

var nick: People = People.init(name: "Nick", age: 30)

 

posted @ 2015-03-15 12:28  Justin X  阅读(2818)  评论(0)  编辑  收藏  举报
刷新评论刷新页面返回顶部
Copyright © 2023 Justin X
Powered by .NET 7.0 on Kubernetes