Swift中的算术数据类型是什么?

时间:2017-04-25 20:54:22

标签: swift swift3

我最近读到Enumstuples具有数学结构,它们分别称为和和产品类型,类似于算术。

我可以理解枚举是sum类型但不能将元组理解为产品类型。

  enum Add<T, U> {
     case left(T)
     case right(U)
  }

因此,如果U有三个成员且T有五个,那么Add<T, U>将有8个,但我无法提供产品类型的示例。

此外,

  1. 枚举是否也可以作为产品类型?
  2. 算术数据类型如何有用?

2 个答案:

答案 0 :(得分:0)

Enum代表两种情况 - 值可以是其中一种情况。它就像一个被称为逻辑和的替代方案。我不认为它们可以被视为产品类型。

元组表示获取所有值时的情况 - 它是一个集合的元素,它是元组包含的每个元素的域的carthesian乘积。这就是为什么您可以将它们视为产品类型的原因。因此,假设你为enum案例做了一个像元素那样的元组,那就是&#39;(T,U)&#39;将有15种可能的变体,因为每个T可以与U - 3 * 5 = 15

中的每一个组合

答案 1 :(得分:-1)

&#34; enum&#34;的简单示例在swift 3.0

enum names 
{
   case Swift
   case Closures
}

var lang = names.Closures // Call .Closures case 
lang = .Closures

switch lang 
{
   case .Swift:
   print("Welcome to Swift")

   case .Closures:   //call this case
   print("Welcome to Closures")

   default:
   print("Introduction")
}

输出:欢迎使用Closures

示例-2:

enum Climate 
{
   case India
   case America
   case Africa
   case Australia
}

var season = Climate.America // call .America case
season = .America

switch season 
{
   case .India:
      print("Climate is Hot")
   case .America:
      print("Climate is Cold") // call this case
   case .Africa:
      print("Climate is Moderate")
   case .Australia:
      print("Climate is Rainy")
   default:
      print("Climate is not predictable")
}

产出:气候寒冷

相关问题