如何从枚举中定义变量?

时间:2016-06-24 08:38:11

标签: swift

我试图定义一个这样的变量:

import UIKit

var str1 = "Apple"
var str2 = "Pear"
var str3 = "Kiwi"

enum Algorithm {

    case Algorithm1
    case Algorithm2
    case Algorithm3

}

var chooseAlgorithm {

switch Algorithm {

    case .Algorithm1:
        return str1
    case .Algorithm2:
        return str2
    case .Algorithm3:
        return str3

}

}

我试图在操场上运行这个代码,有很多错误,有趣的是,如果我尝试其中一个修复 - 它由Xcode提示,XCODE会崩溃。

我需要将str的值赋予chooseAlgorithm,我该如何实现?

2 个答案:

答案 0 :(得分:0)

您无法启用必须打开实例的Algorithm类型。

由于您需要一个参数来传递Algorithm实例,因此您无法使用变量。

func chooseAlgorithm(algorithm : Algorithm) -> String  {

    switch algorithm {

       case .Algorithm1:
           return "I'm Algorithm 1"
       case .Algorithm2:
           return "I'm Algorithm 2"
       case .Algorithm3:
           return "I'm Algorithm 3"

     }
}

答案 1 :(得分:0)

试试这个:

import UIKit

var str1 = "Apple"
var str2 = "Pear"
var str3 = "Kiwi"

enum Algorithm {
    case Algorithm1
    case Algorithm2
    case Algorithm3

    func chooseAlgorithm() -> String {
        switch self {
        case .Algorithm1:
            return str1
        case .Algorithm2:
            return str2
        case .Algorithm3:
            return str3
        }
    }
}

Algorithm.Algorithm1.chooseAlgorithm()