Вы не говорите, что Вы хотите сделать с выведенным файлом.
я использовал бы следующее для получения файла CSV, в который я могу импортировать почти все
.mode csv
-- use '.separator SOME_STRING' for something other than a comma.
.headers on
.out file.csv
select * from MyTable;
, Если Вы хотите повторно вставить в различную базу данных SQLite тогда:
.mode insert <target_table_name>
.out file.sql
select * from MyTable;
Это синтаксическая ошибка, поскольку вы представляете число. Таким образом могут работать строки, но не числа, потому что точка, следующая сразу за числом, символизирует десятичное значение. Символ после .
вызывает ошибку.
В большинстве ответов уже говорилось, что точка после числового литерала считается частью этого числа как разделитель дробей. Но если вы по-прежнему хотите использовать точку в качестве оператора, то быстрое и простое решение - оставить пустое место между числом и пробелом.
2 .isIn(1,2,3,4,5) // <- notice the space between 2 and .
Джош был прав, но вам не нужно использовать переменную, чтобы использовать метод числа , хотя обычно это удобнее делать.
5.isIn(1,2,3,4,5) returns an error
5.0.isIn(1.2.3.4.5) returns true, as does
(5).isIn(1,2,3,4,5)
Хотя различие часто не очевидно из-за автоматического преобразования типов, JavaScript поддерживает ряд примитивных типов, а также объекты:
var foo = 10;
var bar = new Number(10);
alert(foo.toString(16)); // foo is automatically wrapped in an object of type Number
// and that object's toString method is invoked
alert(bar.toString(16)); // bar is already an object of type Number,
// so no type conversion is necessary before
// invoking its toString method
var foo2 = "foo";
var bar2 = new String("foo");
alert(typeof foo2); // "string" - note the lowercase "s", not a String object
alert(typeof bar2); // "object"
alert(typeof true) // "boolean"
alert(typeof new Boolean(true)) // "object"
и кое-что, что действительно сбивает с толку:
// the next line will alert "truthy"
alert("Boolean object with value 'false'" + (new Boolean(false) ? " is truthy" : " is falsy"));
// the next line will alert "falsy"
alert("boolean primitive with value 'false'" + (false ? " is truthy" : " is falsy"));
Хотя полагаясь на автоматическое преобразование типов, жизнь немного упрощается; в глубине души всегда нужно хорошо понимать, к каким типам на самом деле относятся ваши примитивные значения и объекты; удивительно большое количество ошибок JS возникает из-за того, что люди не понимают, что, например, что-то похожее на число на самом деле является строкой или что какая-то операция, которую они выполнили, привела к чему-то, что раньше содержало число, имеющее было присвоено новое значение, которое является строкой или объектом.
РЕДАКТИРОВАТЬ: чтобы более точно ответить на исходный вопрос, теперь я понимаю, что не ответил явно: 10.foo ()
вызовет синтаксическую ошибку как .
рассматривается как десятичная точка, а foo ()
не является допустимой последовательностью символов для анализа как числа. (10) .foo ()
будет работать, поскольку закрывающие скобки (10)
составляют всю конструкцию перед .
в одно выражение. Это выражение вычисляется и возвращает примитивное числовое значение 10
. Затем .
рассматривается как обработка этого примитивного значения в контексте объекта, поэтому оно автоматически упаковывается в объект типа Number
(это автоматическое преобразование типа в действии). Затем делается ссылка на свойство foo
этого объекта, которое находится в его цепочке прототипов;
Насколько я понимаю, числа являются литералами, а не объекты. Однако, когда вы определяете переменную как число, она становится новым объектом Number ().
Таким образом, выполняется следующее:
var x = 10;
То же самое, что и идти;
var x = new Number(10);
Что касается второго примера; Я могу только предположить, что заключение числа в скобки заставило компилятор JavaScript предположить, что значение является анонимным объектом Number (). Думаю, в этом есть смысл ...