首页 > 编程语言 > 详细

Swift19-嵌套类型

时间:2020-05-11 09:07:02      阅读:55      评论:0      收藏:0      [点我收藏+]

嵌套类型实践、引用嵌套类型。

 

枚举常被用于为特定类或结构体实现某些功能。类似地,枚举可以方便的定义工具类或结构体,从而为某个复杂的类型所使用。为了实现这种功能,Swift允许定义嵌套类型,可以在支持的类型中定义嵌套的枚举、类和结构体。

要在一个类型中嵌套另一个类型,将嵌套类型的定义写在其外部类型的{}内,而且可以根据需要定义多级嵌套。

 

嵌套类型实践:

struct BlackjackCard{

  //嵌套的Suit枚举

  enum Suit:Character{  //描述了扑克牌的四种花色

    case Spades="?", Hearts="?", Diamonds="?", Clubs="?"

  }

  //嵌套的Rank枚举

  enum Rank:Int{  //描述扑克牌的值,A~10,J,Q,K

    case Two=2,Three, Four, Five, Six, Seven, Eight, Nine, Ten

    case Jack, Queue, King, Ace

    struct Values{

      let first:Int, Seocnd:Int?

    }

    var values:Values{

      switch self{

      case .Ace:

        return Values(first:1, second:11)

      case .Jack, .Queue, .King:

        return Values(first:10, second:11)

      default:  

        return Values(first:self.rawValue, second:nil)

      }

    }

  }

  //属性和方法

  let rank:Rank, suit:Suit

  var description:String{

    var output="suit is \(suit.rawValue),"

    output+=" value is \(rank.values.first)"

    if let second=rank.values.second{

      output+=" or \(second)"

    }

    return output

  }

}

 

引用嵌套类型:

在外部引用嵌套类型时,在嵌套类型的类型名前加上其它外部类型的类型名作为前缀

let heartsSymbol=BlackjackCard.Suit.Hearts.rawValue

 

Swift19-嵌套类型

原文:https://www.cnblogs.com/cjj-ggboy/p/12866842.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!