天道酬勤,学无止境

types

flowjs: call of method `join`. Method cannot be called on mixed

问题 假设我有一个恒定的动物,我用它导入 import animals from './animals 假设动物常数是: { hoofed:[ 'horses', 'sheep', 'goats' ], feline: [ 'lions', 'tigers' ], canine: [ 'dogs', 'wolves' ] } 假设我要构造一个对一些动物api的Url查询,编写如下代码: const fq = Object.values(animals).reduce((memo, animalList) => memo + `animal:${animalList.join(' animal:')} `, '') 现在,此代码生成一串动物,由单词 animal 和空格分隔,然后对其进行 URL 编码并正确匹配目标 API 表面。 然而,FlowJS 拒绝此代码: 13: const fq = Object.values(animals).reduce((memo, animalList) => memo + `animal:${animalList.join(' animal:')} `, '') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `join`. Method cannot be called on 13

2022-05-17 02:42:09    分类:技术分享    javascript   types   casting   ecmascript-6   flowtype

How to represent a generic JSON structure in Swift?

问题 我想在 Swift 中表示一个通用的 JSON 对象: let foo: [String: Any] = [ "foo": 1, "bar": "baz", ] 但是编译器建议的[String: Any]类型并不能很好地工作。 例如,我无法检查该类型的两个实例是否相等,而这应该可以使用两个 JSON 树。 也不起作用的是使用Codable机制将该值编码为 JSON 字符串: let encoded = try JSONEncoder().encode(foo) 这会因错误而爆炸: fatal error: Dictionary<String, Any> does not conform to Encodable because Any does not conform to Encodable. 我知道我可以引入一个精确的类型,但我追求的是一个通用的 JSON 结构。 我什至尝试为通用 JSON 引入特定类型: enum JSON { case string(String) case number(Float) case object([String:JSON]) case array([JSON]) case bool(Bool) case null } 但是在为此枚举实现Codable时,我不知道如何实现encode(to:) ,因为键控容器(用于编码对象

2022-05-16 21:51:09    分类:技术分享    json   swift   types   codable

Why can't type parameter in Kotlin have any other bounds if it's bounded by another type parameter?

问题 这是显示此问题的最小演示代码: interface A fun <T1, T2> test() where T2 : T1, T2 : A {} 当我尝试编译它时,编译器会抱怨: 错误:(81, 25) Kotlin:类型参数不能有任何其他边界,如果它由另一个类型参数限定 我阅读了 Kotlin 语言规范,但只找到了以下绑定限制: 一个类型参数不能将自己指定为自己的界限,并且多个类型参数不能以循环方式将彼此指定为界限。 它没有解释我遇到的限制。 我探索了 Kotlin 的问题跟踪器,发现了一个关于此限制的问题:允许从另一个类型参数和一个类继承类型参数:KT-13768。 但是,这个问题被以下原因拒绝了(2017 年 5 月 6 日更新:Stanislav Erokhin 重新打开了这个问题): 如果我们取消这个限制,我认为我们不能正确地将代码编译到 JVM。 安德烈·布雷斯拉夫 那么问题来了:如果我们去掉这个限制,为什么我们不能正确地将代码编译到 JVM 中呢? 相同的演示在 Scala 中有效: trait A def test[T1, T2 <: T1 with A](): Unit = {} 这表明 Scala 可以将代码正确编译到 JVM。 为什么 Kotlin 不能? 保证 Kotlin 中可确定的子类型是否有限制(我猜。子类型对于 Scala 是不可确定的

2022-05-16 21:00:33    分类:技术分享    types   kotlin

Long in Float, why?

问题 long b = 99; float c = 99.0F; //b = c; //Error : Cannot implicitly convert type 'float' to 'long'. c = b; // Running Successfully. Why? Console.WriteLine("Long : " + sizeof(long)); // Output --> Long : 8 Console.WriteLine("Float : " + sizeof(float));// Output --> Float: 4 回答1 回答2 有2个原因 1. 取值范围(即最大值)。 +--------------+-----------------------------+ | data type | Maximum Value | +--------------+-----------------------------+ | | | | long | 9223372036854775807 | | | | | float | 3.402823E+38 | | | | +--------------+-----------------------------+ 因为, float的最大值大于long,即 long 包含在 float 中。 So, float=

2022-05-16 17:57:08    分类:技术分享    c#   types   floating-point

The real difference between float32 and float64

问题 我想了解float16和float32在结果精度方面的实际差异。 例如, Numpy允许您选择所需数据类型的范围(np.float16, np.float32, np.float64) 。 我担心的是,如果我决定使用 float 16 来保留内存并避免可能的溢出,那么与 float32 相比,这是否会导致最终结果丢失? 谢谢 回答1 a = np.array([0.123456789121212,2,3], dtype=np.float16) print("16bit: ", a[0]) a = np.array([0.123456789121212,2,3], dtype=np.float32) print("32bit: ", a[0]) b = np.array([0.123456789121212121212,2,3], dtype=np.float64) print("64bit: ", b[0]) 回答2 float32 是一个 32 位数字 - float64 使用 64 位。 这意味着 float64 占用两倍的内存 - 在某些机器架构中对它们进行操作可能会慢很多。 但是,float64 可以比 32 位浮点数更准确地表示数字。 它们还允许存储更大的数字。 对于您的 Python-Numpy 项目,我确信您知道输入变量及其性质。 为了做出决定

2022-05-16 16:50:05    分类:技术分享    python   numpy   types

When is type(instance) different from instance.__class__?

问题 Python具有内置函数类型: 类type (对象) 使用一个参数,返回对象的类型。 返回值是一个类型对象,通常与object.__class__返回的对象相同。 Python 还具有特殊属性 __class__: 实例。 __class__ 类实例所属的类。 我曾经相信它们都指的是同一个对象。 但是在 abc.ABCMeta.__instancecheck__ 方法中检查它们是否相同: def __instancecheck__(cls, instance): """Override for isinstance(instance, cls).""" # Inline the cache checking subclass = instance.__class__ # […] subtype = type(instance) if subtype is subclass: # […] type(instance)何时与instance.__class__不同? 回答1 type(instance)和instance.__class__可能不同,即使是新式类,如 PEP 3119 中提到的 Guido van Rossum : 此外, isinstance(x, B)等价于issubclass(x.__class__, B) or issubclass(type(x), B)

2022-05-16 04:22:26    分类:技术分享    python   class   types

Typescript in VS 2015 ASP.NET 4 MVC 5 - what are the working combinations of settings and choices?

问题 我正在向 VS2015 MVC 5 项目添加一个打字稿项目(这使其成为 ASP.NET 4,而不是 asp.net 5 或 asp.net 6 代码:只有 MVC 是版本 5 )。 这是我问题各个方面的唯一目标,我不能对 typescript、node.js、模块加载器等使用一般化或理论指导。 使用 ASP.NET Core 的问题更简单。 但这不是我所面临的。 当涉及到 ASP.NET 4 MVC 5 时,所有常见的示例和指南来源都避免或提供废品,因为它很难。 没有人会确切地说明障碍有多难或究竟是什么。 最糟糕的是,Typescript 文档就像开源文档:你只能解决一个问题,深入一步。 这产生了一个由无限问题树递归组成的研究工作流程。 我理解意见,我什至有意见。 但我正在寻找经验性的答案,证明对生产团队有效的组合是什么。 因此,以下是需要解决并使其在工作的中型 ASP.NET 4 MVC 5 LOB 应用程序范围内工作的特定项目: Visual Studio 的打字稿版本。 这是一个安装问题(最简单地使用节点)并且工具/选项 - 打字稿设置必须匹配。 浏览器式测试(通常是手动 TDD 工作流)或 node.js 测试(自动化)。 这必须预先选择以防止更多的问题树递归。 我们将使用基于浏览器的... phantomjs 使用 WallabyJs。 NPM @types

2022-05-16 03:39:24    分类:技术分享    asp.net   typescript   types   npm

Function parameter type-setting returning SyntaxError

问题 我有一个 python 脚本,其中包含函数参数的类型声明,如下所示: def dump_var(v: Variable, name: str = None): 据我所知,这是为函数设置一种输入参数类型的有效语法,但它返回一个 SyntaxError: invalid syntax 可能有什么问题? 回答1 SyntaxError 是因为 Python 2.7 不支持类型提示。 正如 PEP 484 所建议的那样,您可以使用Python 3.5+或在注释中使用 Python 2.7 的类型提示: Python 2.7 和跨界代码的建议语法某些工具可能希望在必须与 Python 2.7 兼容的代码中支持类型注释。 为此,此 PEP 有一个建议的(但不是强制性的)扩展,其中函数注释放置在# type:注释中。 这样的注释必须紧跟在函数头之后(在文档字符串之前)。 一个例子:下面的 Python 3 代码: def embezzle(self, account: str, funds: int = 1000000, *fake_receipts: str) -> None: """Embezzle funds from account using fake receipts.""" <code goes here> 等效于以下内容: def embezzle(self

2022-05-15 23:54:04    分类:技术分享    python   python-2.7   function   types   arguments

Subtract int from char : possible lossy conversion int to char

问题 我试图在一个典型的加密密钥问题中从 char 中减去 int,但我在以下语句中遇到了上述错误: char ch = (int)encrypted_message.charAt(i) + key[index]; if (ch > 122) ch = (int)ch - 26; key[]数组保存键的数字,类型为int 。 如何成功旋转字符? 请帮忙! 回答1 int大于char ,但是您的操作结果是int类型(然后您将其存储在char中)。 因此编译器警告您可能会丢失将int值存储到char变量中的信息。 相反,确保结果是char ,这有点痛苦,因为+和-带有char值会导致int ,所以我们必须强制转换: char ch = (char)(encrypted_message.charAt(i) + key[index]); if (ch > 122) ch = (char)(ch - 26);

2022-05-15 12:09:08    分类:技术分享    java   types

Limit a number to a range (Haskell)

问题 我公开了一个带有两个参数的函数,一个是最小界限,另一个是最大界限。 如何使用类型确保例如最小界限不大于最大界限? 我想避免创建一个智能构造函数并返回一个 Maybe,因为它会使整个使用变得更加麻烦。 谢谢 回答1 这并不能完全回答您的问题,但有时有效的一种方法是改变您对类型的解释。 例如,而不是 data Range = {lo :: Integer, hi :: Integer} 你可以使用 data Range = {lo :: Integer, size :: Natural} 这样,就无法表示无效范围。 回答2 此解决方案使用依赖类型(并且可能过于重量级,请检查dfeuer的答案是否足以满足您的需求)。 该解决方案利用了base中的GHC.TypeLits模块,以及 typelits-witnesses 包。 这是一个差分函数,它接受两个整数参数(静态已知)并在第一个数字大于第二个数字时在编译时报错: {-# language TypeFamilies #-} {-# language TypeOperators #-} {-# language DataKinds #-} {-# language ScopedTypeVariables #-} import GHC.TypeLits import GHC.TypeLits.Compare import Data

2022-05-15 07:07:04    分类:技术分享    haskell   types   functional-programming   type-theory   hindley-milner