В javascript можно получить или установить значения в объекте, используя нотацию с точкой или квадратной скобкой, например, в:
var a = {b: "c"};
alert(a.b);
alert(a["b"]);
оба предупреждения дают одинаковый результат.
Есть ли в Opa какой-либо эквивалент этой записи с квадратными скобками, чтобы вы могли установить метку, а также значение поля записи с привязкой?
Я спрашиваю об этом, так как у меня есть следующий код в Opa:
(User.current_server_user, User.flower_hierarchy -> void) set_flower_hierarchy =
function(current_user, flower_hierarchy) {
match(current_user.user_data.cell) {
case {none}: void
case {some: cell}: {
server_user_cell_data_opt = Cell.call(cell, {get})
new_cell_data = match(server_user_cell_data_opt) {
case {none}: {base_server_user_cell_data with ~flower_hierarchy}
case {some: cell_data}: {cell_data with ~flower_hierarchy}
}
_ = Cell.call(cell, {set: some(new_cell_data)})
void
}
}
}
На данный момент я не вижу никакого способа установить new_cell_data со значениями, отличными от flower_hierarchy, без полной репликации функции для установки других полей.