Мне нужна была простая в использовании библиотека C ++ для разбора CSV-файлов, но я не мог найти ее, поэтому я закончил ее создание. Rapidcsv - это библиотека заголовков C ++ 11, которая дает прямой доступ к разбору столбцов (или строк) в виде векторов в выбранном типе данных. Например:
#include
#include
#include
int main()
{
rapidcsv::Document doc("../tests/msft.csv");
std::vector close = doc.GetColumn("Close");
std::cout << "Read " << close.size() << " values." << std::endl;
}
Есть несколько вещей, о которых нужно знать.
Можно ли создать объект с таким же поведением регистрации, как и эти, когда console.diring объекта также немедленно вызовет любые методы получения в цепочке прототипов вместо отображения (...)?
С технической точки зрения да, несмотря на то, что он не будет точно оценивать геттеры (я не уверен, что значения, которые вы видите, оцениваются, когда вы console.dir их). Вам необходимо оценить недвижимость. Однако использование hasOwnProperty
вернет true.
// look at results in Chrome's browser console, not snippet console
class theProto {
get foo() {
return 'fooVal';
}
set foo(arg) {
// do something
}
}
class theClass extends theProto {
foo = (() => theProto.prototype.foo)(); // or, really, just (() => this.foo)();
}
const instance = new theClass();
console.dir(instance);
Рабочая скрипка: https: //jsfiddle.net/vL6smo51/1/
Оператор document.hasOwnProperty()
возвращает true только в том случае, если объект имеет указанное свойство как собственное свойство (в отличие от его наследования). По этой причине свойство домена наследуется от объекта HTMLDocument. HTMLDocument является прототипом документа. Так что он возвращает ложь.