码迷,mamicode.com
首页 > 编程语言 > 详细

Swift2.0(6)结构体类型&枚举类型

时间:2016-03-03 15:04:57      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:ios   app   xcode   swift   swift2.0   结构体类型   

  • 结构体类型

基础数据类型都是结构体,如Int  Float Bool等,是Swift自带的并且作为开发基础供开发者使用

在Swift中,结构体(Struct)和类类型(Class)非常相似,结构体是值类型,类是引用类型。

定义格式:

     struct 名称 : 协议... { 属性和方法 }

如:

     struct Sword {

         var length:Int = 11

         var name:String = "hello world"

         func description() {

             print("this is a \(name) sword, has length \(length)")

         }

     }

     //var a:Sword = Sword()

     var a:Sword = Sword(length: 5, name: "hello")

     print(a)

     Swift中对于结构体的命名规范:结构体名首字母必须大写,其他字母遵循首字母大写---驼峰规则

     结构体中可以包含静态属性、静态方法(类类型当然也是可以的)

  • 枚举类型

Swift中使用enum和case定义枚举类型

     初始化使用:类型名.枚举值的方式

     赋值使用:.枚举值的方式

     enum weekday {

         case Sun, Mon, Tue, Wed, Thr, Fri, Sat

     }

     var day1 = Weekday.Sun   //初始化操作

     day1 = .Fri  //赋值

     用于switch语句中:

     switch day1 {

          case .Sun:

              print("Sunday.")

          case .Mon:

              print("Monday.")

          default:

              print("Other.")

     }

Swift中枚举并不局限于C语言中的无符号整型,可以设置不同类型的关联值,如

     enum AccountName {

         case mailAccountName(String), commonAccountName(String)

         case telAccountName(Int)

     }

     var n1 = AccountName.mailAccountName("anm@neusoft.com")

     var n2 = AccountName.commonAccountName("anm")

     var n3 = AccountName.telAccountName(2234567)

     用于switch语句

     switch n1 {

          case .mailAccountName(let name):

              print("邮箱名:\(name)")

          case .commonAccountName(let name):

              print("用户名:\(name)")

          case .telAccountName(let name):

              print("手机号:\(name)")

     }


本文出自 “安萌” 博客,请务必保留此出处http://annmeng.blog.51cto.com/3321237/1747049

Swift2.0(6)结构体类型&枚举类型

标签:ios   app   xcode   swift   swift2.0   结构体类型   

原文地址:http://annmeng.blog.51cto.com/3321237/1747049

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!