sigma-experiment-get-feature-value
SigmaExperiment.getFeatureValue
func getFeatureValue<T: SigmaPropertyType>(flagName: String) throws -> T?
Получает значение Feature Flag внутри пользовательского эксперимента по имени Feature Flag. Результат может быть одного следующих из типов: Bool
, Int
, Double
, String
или [String: Any]
.
Параметры
Name | Type | Required | Default | Description |
flagName | String | Да | Название Feature Flag в эксперименте |
Возвращаемое значение
Type | Description |
Bool? / Int? / Double? / String? / [String: Any]? | Значение Feature Flag, или nil, если пользователь не попал в эксперимент или если нельзя привести значение к выбранному типу |
Ошибки
Error | Description |
SigmaError.experimentGroupNotMatchingFeatureFlagGroup | Feature Flag в эксперименте не содержит группы с таким же названием, как и группа эксперимента, в которую попал пользователь |
Использование
import SigmaSDK
guard let client = Sigma.getClient() else { return }
// Callback версия
client.getExperiment(
name: "my_first_experiment",
onSuccess: { experiment in
let myValue: Double? = experiment.getFeatureValue(flagName: "my_feature_flag")
// Обработка значения Feature Flag
},
onError: { error in
// Обработка ошибки
}
)
// Async-await версия
do {
let userExperiment = try await client.getExperiment(name: "my_first_experiment")
let myValue: Double? = experiment.getFeatureValue(flagName: "my_feature_flag")
// Обработка значения Feature Flag
} catch let error {
// Обработка ошибки
}
Дополнительная информация
Данный метод может вернуть nil
в случае, если пользователь не попал в эксперимент, либо если данный Feature Flag не содержит варианта, соответствующего группе, в которую попал пользователь, либо если был выбран неправильный тип данных (например, попытка получить Feature Flag со значением Int
, когда на самом деле он String
)