-
37 votesanswersviews
Swift - 要求实现协议的类是某个类的子类
我正在创建几个 NSView 类,所有这些类都支持特殊操作,我们称之为 transmogrify . 乍一看,这似乎是协议的完美之处: protocol TransmogrifiableView { func transmogrify() } 但是,此协议并未强制每个 TransmogrifiableView 也是 NSView . 这意味着我在 TransmogrifiableVi... -
0 votesanswersviews
ocaml type missmatch unit vs list
为此签名 val chooser: string list * string list -> string list 和这个实现 let rec chooser (inputList, trueList) = match inputList with [] -> [] | iH::iT -> if (List.hd trueList)="True&... -
15 votesanswersviews
当参数不符合类型约束时,为什么Scala函数会编译?
假设我有一个名为 Marker 的空标记特征和一些由 Marker 绑定的类型参数的函数: trait Marker object Marker { def works[M <: Marker](m:M):M = m def doesntWork[M <: Marker](f:M => String):String = "doesn't matter"... -
207 votesanswersviews
检查对象是否是Swift中的给定类型
我有一个由 AnyObject 组成的数组 . 我想迭代它,并找到所有元素作为数组实例 . 如何在Swift中检查对象是否属于给定类型? -
2 votesanswersviews
TypeScript - 检查对象的属性是否是具有给定签名的函数
我有一个从对象获取属性的函数 . // Utils.ts export function getProperty<T, K extends keyof T>(obj: T, key: string): T[K] { if (key in obj) { return obj[key as K]; } throw new Error(`Invalid object memb... -
9 votesanswersviews
GHC 7.7中引入的自由覆盖条件打破了GHC 7.6中有效的代码
The idea 我正在写一个DSL,它编译成Haskell . 该语言的用户可以定义自己的不可变数据结构和相关功能 . 通过关联函数,我指的是属于数据结构的函数 . 例如,用户可以写(以“pythonic”伪代码): data Vector a: x,y,z :: a def method1(self, x): return x (这相当于下面的代码,但也显示了相关函数be... -
4 votesanswersviews
跨源文件进行类型检查
我花了很多时间调试一个问题,结果是由两个源文件引起的,包括两个不同顺序的头文件 . 其中一个头定义了_FILE_OFFSET_BITS到64,另一个头文件包含<sys / types.h>,它将off_t定义为32或64位长,具体取决于_FILE_OFFSET_BITS的设置 . 我在下面列举了这种情况的一个简短例子 . 这是在x86_32 Linux(Debian unstable和... -
0 votesanswersviews
在Lua中进行类型检查的OOP
我正在尝试在Lua中实现具有继承的类 . 另外,在创建新对象时,需要进行某种“类型检查” . 一个特殊要求是使用特定语法来创建类(示例): Class({Volkswagen, Vehicle, model=String, speed=Number, driving=Boolean}) 请注意,参数作为可变长度的列表传递 . 所以我需要一个获取任意数量参数的函数: function Class ... -
5 votesanswersviews
Haskell中的Monadic类型检查器
我正在从BNFC开始在Haskell中编写解析器和类型检查器 . 类型检查器的主要功能实现如下: typecheck :: Program -> Err () typecheck (PDefs ds) = do env <- foldM (\env (DFun typ id args _ _) -> updateFun env id (... -
1 votesanswersviews
与mypy的可比类型
我正在尝试创建一个泛型类来表示值具有下限和上限,并强制执行这些边界 . from typing import Any, Optional, TypeVar T = TypeVar("T") class Bounded(object): def __init__(self, minValue: T, maxValue: T) -> None: a... -
0 votesanswersviews
OCaml的静态类型检查器上的错误
2010210088这是一个扩展名:Implementing type equation generator in OCaml type exp = | CONST of int | VAR of var | ADD of exp * exp | SUB of exp * exp | ISZERO of exp | IF of exp * exp * exp | LE...