Публикации по теме 'coercion'
Принуждение и ложные значения в Javscript.
В JavaScript приведение — это процесс преобразования значения из одного типа в другой. Это можно сделать явно или неявно, и это может привести к неожиданному поведению, если вы не будете осторожны. Одной из областей, где это особенно верно, являются ложные значения.
Ложные значения — это значения, которые считаются ложными при оценке в логическом контексте. Следующие значения считаются ложными в JavaScript:
\› false \› null \› undefined \› 0 \› NaN \› ‘’ (пустая строка)
Когда вы..
Javascript: динамическая типизация Javascript, принуждение и операторы
Надеюсь, вы не почувствуете сонливости, увидев заголовок выше. Это базовые вещи, вы можете задаться вопросом, зачем нам тратить на это время? Ну, есть несколько общих вопросов по Javascript:
1. Можете ли вы сказать мне, в чем разница между «==» и «===»?
2. Что такое «console.log(3‹2‹1)» и почему?
Если мы знаем какую-то фундаментальную часть Javascript, такую как динамическая типизация, принуждение и операторы, ответить на эти вопросы будет тривиально, и, что более важно, стать..
Понимание принуждения Javascript за 5 простых шагов
Недавно я обнаружил, что мне нужно заново познакомиться со всеми «причудами» Javascript. Для тех, кто использует Javascript лишь случайно, попытка понять, как он ведет себя при сравнении различных типов значений, может быть сложной задачей.
Вы, наверное, наткнулись на какой-то странный факт вроде:
[] == 0 // true
0 == '0' // true
[] == '0' // false!
что шокирующим образом нарушает принцип транзитивности! Я имею в виду, что если a == b и b == c , то a тоже должно равняться c ,..
Вопросы по теме 'coercion'
логический запрос к смешанной (символьной и числовой) переменной
Я не думал, что это будет так сложно, но я боролся какое-то время ... Я надеюсь, что это что-то простое, чего мне не хватает :) Мне нужно иметь возможность логически запрашивать фрейм данных, содержащий переменные, которые представляют собой смесь...
87 просмотров
schedule
29.09.2021
sprintf недопустимый формат "% d"
Это работает:
> sprintf('%d', c(1, 1.5))
[1] "1" "1"
а это не так:
> sprintf('%d', c(1.5, 1))
Error in sprintf("%d", c(1.5, 1)) :
invalid format '%d'; use format %f, %e, %g or %a for numeric objects
Почему?
6267 просмотров
schedule
01.10.2021
Объедините строку, как в printf
printf - прекрасная функция, потому что она помогает вам очень чисто отформатировать строку.
printf("Player %s has lost %d hitpoints", victim.name, damage);
Есть ли аналогичный способ объединения и выполнения принуждения в «нормальной...
7758 просмотров
schedule
16.11.2021
Обнаружить строку, содержащую имена
Мне нужно определить, является ли моя первая строка наблюдений строкой имен. При импорте данные всегда импортируются как символьные столбцы из таблицы ( пакет readxl ).
По структуре данных, безымянная строка всегда содержит не менее 8 числовых...
79 просмотров
schedule
02.10.2021
Принуждение Groovy к интерфейсу неизвестно во время компиляции
Некоторое время назад я спросил, как заставить класс реализовать интерфейс, который это не реализуется декларацией .
Одна из возможностей - as -принуждение:
interface MyInterface {
def foo()
}
class MyClass {
def foo() { "foo" }
}...
60 просмотров
schedule
03.12.2021
Почему JavaScript при конкатенации предпочтительно приводит к строкам, а при сравнении - к числам?
Почему JavaScript предпочтительно приводит операнды к строкам при использовании оператора конкатенации + , но предпочтительно приводит операнды к числам при выполнении == проверок равенства?
'1' + 1 приводится к '1' + '1' и возвращает '11'...
244 просмотров
schedule
18.11.2021
Почему GHC противоречит сам себе при использовании ограничения Coercible?
Почему GHC делает вывод об унификации из принуждения связанных данных и почему он противоречит своей собственной сигнатуре проверенного типа, чтобы сделать это?
Эта проблема
{-# LANGUAGE ExplicitForAll #-}
{-# LANGUAGE FlexibleContexts #-}
{-#...
89 просмотров
schedule
19.02.2022
Числовой столбец приводится к символьному столбцу при изменении другого символьного столбца
У меня есть фрейм данных с двумя столбцами, первый содержит числа, второй - строки. Моя проблема: как только я заменяю строку во втором столбце другой строкой, первый столбец переводится с class числового на символ. Вот пример:
df <-...
29 просмотров
schedule
03.03.2022
Флэш-память As3 — ошибки приведения к ошибкам при передаче сторонних типов данных Swf в Swf
Я делаю игру, в которой каждый экран загружается как отдельный swf. Я загружаю swf с помощью LoaderMax от Greensock, но я не думаю, что это является причиной проблемы. После загрузки swf я могу установить свойства дочернего swf, такие как String и...
136 просмотров
schedule
13.03.2022
Преобразуйте столбец фрейма данных в числовой только тогда, когда это имеет смысл
data0 = data.frame(a=c(1,2,3,4),b=c("a","b","c","d"),c=c("1","2","3","4"))
data0[,2] = as.character(data0[,2])
data0[,3] = as.character(data0[,3])
class(data0[,2])
class(data0[,3])
data0[,2] = as.numeric(data0[,2])
data0[,3] = as.numeric(data0[,3])...
118 просмотров
schedule
14.03.2022
определение наличия в столбце нескольких классов data.table
У меня огромная таблица данных, поэтому я не могу видеть все свои записи в столбцах.
Я хочу преобразовать столбец, который, по-видимому, является символом класса, в числовой, однако, когда я использую as.numeric (col_name), я получаю предупреждение...
71 просмотров
schedule
07.04.2022
Матрица для временных рядов с NA
У меня есть фрейм данных, первая строка которого состоит из названий валют, вторая строка состоит из дат, а первая строка состоит из исторических цен на эти даты.
Как я могу преобразовать это в объект временного ряда, столбцы которого состоят из...
25 просмотров
schedule
13.04.2022
Отключить приведение типа Haskell
У меня есть пример, основанный на hyperloglog . Я пытаюсь параметризовать свой Container размером и использовать отражение , чтобы использовать этот параметр в функциях контейнеров.
import Data.Proxy
import...
344 просмотров
schedule
22.05.2022
Логическое принуждение в Javascript 'if' охраняет
Сегодня я заметил такое поведение в Javascript, которое меня очень удивило и смутило:
if ("0") {
console.log('first')
}
if ("0" == true) {
console.log('second');
}
вывод:
first
Я ожидал, что будут выполнены либо обе, либо ни...
42 просмотров
schedule
09.06.2022
преобразовать вызов функции в строку
Я пытаюсь понять, что такое объект call в R, и принудить его к символам. Однако пока мои усилия были тщетны.
myFun=function(a=1) { x=sys.call() return(as.character(x)) }
x=myFun(a=2) # here I would like to get the string "myFun(a = 2)"...
82 просмотров
schedule
26.08.2022
Конструктор преобразования вызывается для перемещения, но не для копирования
Используя этот код:
template <class T> class Test {
T _temp;
public:
Test() {
std::cout << "Test()" << std::endl;
};
template <class T2> Test(Test<T2> const &test) {
std::cout...
160 просмотров
schedule
14.09.2022
принуждение нуля к числу
Что здесь происходит??
irb(main):001:0> a= nil
=> nil
irb(main):002:0> b = nil
=> nil
irb(main):003:0> a
=> nil
irb(main):004:0> a+b
NoMethodError: undefined method `+' for nil:NilClass
from (irb):4
from :0...
808 просмотров
schedule
21.09.2022
В чем разница между приведением типов и приведением в Python?
В документации Python и в списках рассылки я вижу, что значения иногда приводятся, а иногда - принудительно.
32032 просмотров
schedule
04.04.2023
Как я могу преобразовать LazySeq символов в строку в Clojure?
Допустим, у меня есть LazySeq из java.lang.Character , например
(\b \ \! \/ \b \ \% \1 \9 \/ \. \i \% \$ \i \space \^@)
Как я могу преобразовать это в строку? Я пробовал очевидное
(String. my-char-seq)
но это бросает...
23309 просмотров
schedule
05.01.2023
Приведение возвращаемого типа F#
В F# у меня есть функция, которая возвращает экземпляры System.Linq.Expression:
and System.Object with
member this.ToExpression() =
match this with
| :? System.Int32 -> Expression.Constant(this) :> Expression
| :?...
1580 просмотров
schedule
31.10.2022