小编mam*_*mcx的帖子

在 Rust 中,如何检查泛型参数是否属于特定类型并将其强制转换为该类型

我有几种实现特征(关系)的类型。我需要在它们之间传递数据,比如INSERT INTO FROM SELECT来自 sql。

但是,有时我会移动来自相同类型的数据,这意味着我可以使用更直接的方式:

impl Relation for BTree {
    fn new_from<R: Relation>(names: Schema, of: R) -> Self {
       if of is Btree { //How do this
          //Fast path
          cast(of as Btree).clone()  //And this
       } else {
          //Generic path
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

generics rust

6
推荐指数
1
解决办法
3533
查看次数

如何使用Application Verifier 4.0测试Delphi应用程序?

我下载Application Verifier 4.0以测试我的应用程序以检查Vista/7是否存在问题.

我从Delphi 2010调试器运行,并在CPU视图中停止.显然,我对汇编程序一无所知!

所以,我尝试直接从Windows资源管理器运行,并且应用程序死掉.

(事实上​​,我不明白App Verifier究竟会做什么:我期待某种友好的信息).

这就是我得到的:

7C81A3E2 C3               ret 
7C81A3E3 90               nop 
7C81A3E4 8BFF             mov edi,edi
ntdll.DbgUserBreakPoint:
7C81A3E6 CC               int 3
7C81A3E7 C3               ret 
7C81A3E8 8BFF             mov edi,edi
7C81A3EA 8B442404         mov eax,[esp+$04]
7C81A3EE CC               int 3
7C81A3EF C20400           ret $0004
ntdll.NtCurrentTeb:
7C81A3F2 64A118000000     mov eax, fs:[$00000018]
7C81A3F8 C3               ret 
ntdll.RtlInitString:
7C81A3F9 57               push edi
Run Code Online (Sandbox Code Playgroud)

加载:

:7c81a3e2 ntdll.DbgBreakPoint + 0x1
:10003b68 ; C:\WINDOWS\system32\vrfcore.dll
:00396a9d ; C:\WINDOWS\system32\vfbasics.dll
:00397316 ; C:\WINDOWS\system32\vfbasics.dll
:7c84bcdb ; ntdll.dll
:7c8316f8 ; ntdll.dll
:7c83154f ; ntdll.dll …
Run Code Online (Sandbox Code Playgroud)

delphi debugging windows-7 delphi-2010

5
推荐指数
2
解决办法
1209
查看次数

如何使用objective-c实现样式通道(CSP)?

我想知道如何为obj-c 创建一个CSP库,它像Go的channel/goroutine 一样工作,但是具有惯用的obj-c(并且比实际的方式更少的样板).

在使用原生courutines和/或生成器的其他语言中,可以轻松地对其进行建模,但我不知道如何使用obj-c中的并发编程的几种方法(另外,这个想法有"廉价"线程) ).

关于我需要做什么的暗示?

concurrency yield channel objective-c go

5
推荐指数
1
解决办法
1182
查看次数

如何为自制语言创建调试器?

我想构建一种语言,但我认为它至少需要一个 REPL 和一个调试器才能发挥作用。

如何合并调试器对我来说看起来很神奇。我记得旧的 Visual FoxPro 有多棒,而 xcode(相比之下)有多糟糕,所以我怀疑这是一件很难的事。

哪种语言更容易集成调试器?口译员?编译了吗?至关重要的?功能性?

如果语言是在 Objective-C 之上用 LLVM、Lua/LuaJit 编写的,会有什么不同吗?(我问这个问题是因为对于我的宠物语言来说,如何变得更容易是一个关键因素。所以我想,更简单的目标将得到更容易的答案)

最好的方法是使用 GDB/LLDB 还是自己动手?

去哪里查看这个问题?

debugging programming-languages

5
推荐指数
1
解决办法
2385
查看次数

如何使用AFNetworking 2以严格的顺序发送请求?

我正在进行同步以将sqlite DB镜像到服务器.

我有一个Master-Detail表,其中的详细信息必须尽快发送到服务器.但是,细节3可能在细节2之前到达.我需要模仿对文档所做的步骤并遵守操作的顺序.

在本地保存记录时,我发送通知然后发布数据.如何使用AFNetworking保证严格的顺序订单?

asynchronous sync afnetworking-2

5
推荐指数
1
解决办法
1056
查看次数

如何修复标签放置,使它们在DevExpress js图表中不重叠?

我需要在所有图表上添加标签.但标签与图表的密度重叠.我附上了一个样本.

我需要将它们分开.怎么样?

我没有修改lib的CSS.使用上一个版本.

这是一个示例代码,可以粘贴在http://js.devexpress.com/Demos/VizGallery/#chart/chartsareaseriesarea上:

var labelPercent = {
    visible: true,
    format: 'percent',
    precision: 1,
};


var dataSource = [
    {
        "Aeropuertos": 0.003, 
        "AguaFacilidades": 0.016, 
        "CallesPuentes": 0.183, 
        "ConstruccionResidencialNO": 0.542, 
        "PetroleoGas": 0.071, 
        "PlantasEnergia": 0.11, 
        "PuertosFluviales": 0.052, 
        "ViasFerreas": 0.023, 
        "Year": "2011"
    }, 
    {
        "Aeropuertos": 0.01, 
        "AguaFacilidades": 0.019, 
        "CallesPuentes": 0.19, 
        "ConstruccionResidencialNO": 0.542, 
        "PetroleoGas": 0.079, 
        "PlantasEnergia": 0.09, 
        "PuertosFluviales": 0.029, 
        "ViasFerreas": 0.04, 
        "Year": "2012"
    }, 
    {
        "Aeropuertos": 0.01, 
        "AguaFacilidades": 0.019, 
        "CallesPuentes": 0.191, 
        "ConstruccionResidencialNO": 0.541, 
        "PetroleoGas": 0.082, 
        "PlantasEnergia": 0.088, 
        "PuertosFluviales": 0.029, 
        "ViasFerreas": 0.04, 
        "Year": "2013" …
Run Code Online (Sandbox Code Playgroud)

javascript css charts devexpress stacked-area-chart

5
推荐指数
1
解决办法
947
查看次数

如何在记录中声明一个具有F#中通用记录列表的成员

我被困在如何通过一个通用的记录列表.我想这样做:

type TabularData<'T>= array<'T>
type Table = {title:string; data:TabularData<'T>} //This of course not work

type Cpu = 
  { name:string; load:int; }

type Memory = 
  { name:string; load:int; }

//F# not let me pass CPU or Memory
Run Code Online (Sandbox Code Playgroud)

我想创建任何类型的记录列表,并传递给序列化为json

PD:有关该问题的更多信息.

我已经忘了添加主要问题.使用泛型,它扩展到其余的功能.因此,我需要使用通用签名标记一切,因此可以更通用并说:"我可以在这里找到任何类型的记录吗?"

generics f# record

5
推荐指数
1
解决办法
753
查看次数

F#构建一个列表/值数组+连续重复

我需要打包这样的数据:

let data = [1; 2; 2; 3; 2; 2; 2; 4]
let packed = [(1, 1); (2, 2); (3, 1); (2, 3); (4, 1)]
Run Code Online (Sandbox Code Playgroud)

每个项目说明下一个项目存在多少次.但是,它必须与不相邻的重复一起使用.

我可以用经典的命令式代码来解决这个问题,但是想知道这个功能是如何做到的.

此外,Seq.countBy不工作,因为它考虑了所有的价值观

f#

5
推荐指数
1
解决办法
539
查看次数

直接在 F# 中匹配类型(不是对象,而是实际的 System.Type)

我知道如何在对象的类型上进行匹配,但是如何直接在类型对象上进行匹配?

这不起作用:

    let toType = p.PropertyType 

    match toType with
    | System.Enum -> 
    | System.Int32 -> 
Run Code Online (Sandbox Code Playgroud)

PD:是的,我需要匹配类型。我没有物体,因为我正在反思

f# types pattern-matching

5
推荐指数
1
解决办法
1370
查看次数

如何在不使该函数通用的情况下将带有泛型的闭包传递给函数?

我有一个与枚举一起使用的函数来应用二进制函数.这是一个口译员:

use std::ops::*;

#[derive(Debug, Clone, PartialEq, PartialOrd)]
pub enum Scalar {
    I64(i64),
    I32(i32),
    //many many others
}

pub trait TMath: Add + Mul + Sized {} //mark numerical types
impl<T: Add + Mul> TMath for T {}

fn add<T: TMath>(x: T, y: T) -> <T as Add>::Output {
    x + y
}

pub type NatBinExpr<T: TMath> = Fn(&T, &T) -> T;
Run Code Online (Sandbox Code Playgroud)

我想要做:

let result = bin_op(add, &Scalar::I32(1), &Scalar::I32(2));
Run Code Online (Sandbox Code Playgroud)

而且还使它适用于任意二进制函数:

let result = bin_op(Scalar::concat, &Scalar::I32(1), &Scalar::I32(2));
Run Code Online (Sandbox Code Playgroud)

但是,我还没有找到一种方法来传递闭包而不使用bin_op泛型:

fn bin_op(apply: …
Run Code Online (Sandbox Code Playgroud)

generics closures rust

5
推荐指数
1
解决办法
224
查看次数