let s = "12345"
console.log(s)

Вывод: 12345

Наконец, в ваших методах API, когда вы хотите вызвать свои службы, вам нужно просто использовать ContextScopeFactory для создания области контекста. AmbientDbContextLocators будет извлекать DbContext из этой области контекста. Область контекста, которую вы создаете с помощью фабрики, будет реализована в блоке UNSAFE_componentWillReceiveProps, чтобы гарантировать удаление ваших контекстов. Итак, используя ваш метод Checkout в качестве примера, это будет выглядеть так:

-2
Monsieur Propre 20 Дек 2019 в 18:58
1
Да, я сделал.
 – 
Monsieur Propre
20 Дек 2019 в 19:02
1
Я попытался скомпилировать MarkovSwitching.py из statsmodels в python, но у меня возникла следующая ошибка:
 – 
Aurovrata
20 Дек 2019 в 19:06
1
Я обнаружил, что df['df['age'].isna()] не работает должным образом. Маршрутизатор не обновляет, какой маршрут отображать.
 – 
matthew-e-brown
5 Янв 2020 в 05:00

3 ответа

Часть => называется стрелочной функцией.. Давайте разберем весь опубликованный вами раздел:

(_, i) => s.slice(i, i+3)

Мой код Java начинается с myRandomAPI следующим образом:

(_, i)          /* The function parameters */
=>              /* The arrow */
s.slice(i, i+3) /* The function body */

В этом примере автор дает параметрам имена _ (вероятно, потому что он будет проигнорирован) и i (потому что это индекс массива).

Затем в контроллерах веб-API, в которых вы используете свои службы (а не сами службы), вам необходимо добавить экземпляр DbContextScopeFactory ..

Корпус - это основная часть. Требуется кусок строки s. Стрелочные функции автоматически возвращают оператор.

В чванстве вышеупомянутый api отображается как BaseURL / myRandomApi

let s = "12345"
let m = Array.from(s.slice(2), function (ignore, i) {
    return s.slice(i, i + 3);
})
console.log(m)

Сама функция примет часть строки s, начинающуюся с i и заканчивающуюся на 3 места после этого (так что она занимает 3 символа).

Надеюсь, это поможет.

1
James Long 20 Дек 2019 в 19:15

Во-первых, s.slice(2) принимает "12345" и возвращает "345" (берется строка, начинающаяся с индекса 2 до конца, поскольку параметр end не задан).

Что делает Array.from, так это берет повторяемый объект (например, строку, которая представляет собой массив символов) и создает из него массив . Требуется необязательный второй (а также третий, но он здесь не применяется) аргумент, который является функцией, для выполнения каждого элемента в этом повторяемом объекте при создании нового массива. Его первым аргументом будет элемент в итерации на каждом шаге , а вторым - индекс . В этом случае эта функция определяется с помощью ES6 Arrow Function синтаксис. Более подробно это можно записать как:

let s = "12345"
let m = Array.from(s.slice(2), function(_, i) {
  return s.slice(i, i + 3);
});

Я не уверен, является ли это предметом спора, но _ - это соглашение в программировании на JavaScript для переменной или аргумента, которые не нужны или "отброшены". В этом случае вам не нужен первый аргумент, но вам нужен второй, отсюда и _.

Итак, если мы запустим Array.from на "345", то вот что произойдет:

  1. Объект итерации №1, "3" и индекс 0: запустите функцию s.slice(0, 0 + 3) (получите три символа, начинающиеся с 0). Возвращаемое значение: "123".
  2. Объект итерации №2, "4" и индекс 1: запустите функцию s.slice(1, 1 + 3) (получите три символа, начинающиеся с 1). Возвращаемое значение: "234".
  3. Объект итерации № 3, "5" и индекс 2: запустить функцию s.slice(2, 2 + 3) (получить три символа, начинающиеся с 2). Возвращаемое значение: "345".
  4. Массив состоит из этих трех возвращаемых значений: [ "123", "234", "345" ].
5
matthew-e-brown 20 Дек 2019 в 19:26

Array.from позволяет получить массив из другой "коллекции вещей".

Первый аргумент - это подстрока, начинающаяся с индекса 2, то есть «345». Array.from примет это как набор символов: «3», «4», «5».

Второй аргумент - это функция, которая будет применяться к каждому объекту, полученному из первого. И эта функция принимает 2 аргумента, первый из которых является значением, полученным из первого аргумента, а второй - индекс текущей итерации. Таким образом, значения «3», «4,« 5 »создаются по очереди:« 3 »с индексом 0,« 4 »с индексом 1,« 5 »с индексом 2. Видите? Пары ('3', 0), ('4', 1), ('5', 2). Но данная функция просто игнорирует свой первый аргумент, используя _ для обозначения того факта, что это будет игнорироваться (что было получено из первого аргумента from), и в основном вызывает str.slice(i,i+3) для всех значения i в 0, 1, 2. Наконец, получаются 3 строки «123», «234» и «345».

Попробуйте с этим:

var str="12345"
var m = Array.from(str.slice(2), (x,i)=>"Got ("+x+","+i+") and compute \""+str+"\".slice("+i+","+(i+3)+")")
console.log(m)
1
Jean-Baptiste Yunès 20 Дек 2019 в 19:19