小编sen*_*hin的帖子

在C和C++中存储和显示的地址有什么区别?

在C中,如果我创建一个变量并打印它的地址,如下所示:

int a;
int main (void) {
    printf ("%p", &a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出为:00AA

使用该行的C++中的相同程序:

cout << &a << endl;
Run Code Online (Sandbox Code Playgroud)

输出为:0x8f970aa

这两者有什么区别?

我使用Turbo C编译了这两个程序.

c c++

11
推荐指数
2
解决办法
1274
查看次数

TypeScript可以警告我非空断言运算符的多余用法吗?

请考虑以下TypeScript代码:

let x = { foo: { bar: "baz" } };
console.log(x.foo!.bar);
Run Code Online (Sandbox Code Playgroud)

这里,推断类型x.foo{ bar: string },因此不需要使用非null断言运算符!(参见例如https://github.com/Microsoft/TypeScript/issues/7395):编译器已经知道x.foo不能是空的.

tsc(或者可能是像TSLint这样广泛使用的第三方工具)可以警告我这些多余的用途!,和/或这是一个有计划的功能吗?

我确信这在原则上是可行的(似乎只是使用TypeScript编译器API来识别在!类型不是T | null或的变量上使用的地方T | undefined); 我只是想知道是否已经完成了繁重的工作.或者,我想,指向TypeScript编译器API的相关部分的指针也可以工作 - 很难找到它的文档(我想因为它还不稳定).

(我想问的原因是,我担心我会最终不得不处理代码,其中过去我有些白痴洒!到处做出tsc --strictNullChecks停止发放错误,实际上并没有考虑断言变量是否确实是非如果它在运行时最终为null,那么瞧!我们可以在编译时捕获一个错误,但是由于过于热心而没有!.!在已知的非变量变量上存在s会强烈暗示代码过度使用!,可能是错误的.)

typescript

10
推荐指数
1
解决办法
461
查看次数

如何从字符中非常有效地提取特定模式?

我有这样的大数据:

> Data[1:7,1]
[1] mature=hsa-miR-5087|mir_Family=-|Gene=OR4F5        
[2] mature=hsa-miR-26a-1-3p|mir_Family=mir-26|Gene=OR4F9
[3] mature=hsa-miR-448|mir_Family=mir-448|Gene=OR4F5   
[4] mature=hsa-miR-659-3p|mir_Family=-|Gene=OR4F5      
[5] mature=hsa-miR-5197-3p|mir_Family=-|Gene=OR4F5     
[6] mature=hsa-miR-5093|mir_Family=-|Gene=OR4F5        
[7] mature=hsa-miR-650|mir_Family=mir-650|Gene=OR4F5
Run Code Online (Sandbox Code Playgroud)

我想要做的是,在每一行中,我想在单词mature =之后选择名称,并在Gene =之后选择单词然后将它们与

paste(a,b, sep="-")
Run Code Online (Sandbox Code Playgroud)

例如,前两行的预期输出如下:

hsa-miR-5087-OR4F5
hsa-miR-26a-1-3p-OR4F9
Run Code Online (Sandbox Code Playgroud)

所以,最终的实现是这样的:

for(i in 1:nrow(Data)){
    Data[i,3] <- sub("mature=([^|]*).*Gene=(.*)", "\\1-\\2", Data[i,1])
    Name <- strsplit(as.vector(Data[i,2]),"\\|")[[1]][2]
    Data[i,4] <- as.numeric(sub("pvalue=","",Name))
    print(i)
}
Run Code Online (Sandbox Code Playgroud)

哪个效果很好,但速度很慢.数据的大小非常大,它有200,000,000 行.这个实现非常缓慢.我怎样才能加快速度?

regex r

9
推荐指数
4
解决办法
376
查看次数

是否有可能编写一个无法访问全局变量的JS函数?

为了更好地了解函数的使用情况等,如果不访问全局范围,变量查找可能会更快吗?

假设我有:

a = 5;
b = 5;
Run Code Online (Sandbox Code Playgroud)

在全球范围内.是否可以将下面的函数包装起来

function go() {
   console.log(a);
}
Run Code Online (Sandbox Code Playgroud)

将无法访问"a"和全局命名空间并返回

Uncaught ReferenceError: a is not defined
Run Code Online (Sandbox Code Playgroud)

javascript global-variables

9
推荐指数
1
解决办法
133
查看次数

配置Visual Studio 2015,使得Typescript虚拟项目永远不会创建"松散文件"

我一直试图在Visual Studio中配置打字稿几个月.

我无法找到关于如何在Visual Studio Enterprise 2015中安装或配置Typescript的明确,可靠和完整的规范,这样我就不会陷入让我的x.ts文件弹出一个"杂项"虚拟项目的陷阱.包含lib.d.ts和tsconfig.json的虚拟项目.

这种情况导致智能感知的丧失,需要返回通用的三斜线参考,以及任何商业开发或其他生产链接环境中的基本不可承认的代码.简而言之,它使打字稿成为专业开发人员的非首发.

关于这个主题的谷歌搜索状态在2016年比2014年和2015年有所改善,但最明确的信息仍然在微软的Typescript Github问题列表中,但这些答案太具体了,不能毫不含糊地作为一般指南.其他最佳定义是Scott Logic的讨论Typescript网站的ASP.NET 4项目教程.

我已将TypescriptVersion变量设置为VS2015的MS SDKs Typescript文件夹中的正确版本.在我的情况下是15.0(尽管Typecript的MSBuild版本是18.0).所以我不再收到有关这个令人恼火的错误.

我有一个正确的tsconfig.json文件匹配Typescript网站的ASP.NET 4项目中描述的文件.

我有一个VS2015生成的lib.d.ts文件,我的虚拟项目名称包含lib.d.ts和tsconfig.json文件名为myproject(tsconfig.json).所有这一切都是预期的.

但是,只要我将一个空白的"base.ts"文件添加到我的Scripts/common文件夹中,我就会得到另一个名为"Miscellaneous"的Typescript虚拟项目,其中包含一个lib.es6.d.ts文件和我的新base.ts.

这意味着VS2015将我的新空.ts文件识别为"松散文件",与打字稿编译上下文无关.上面提到的Scott Logic的帖子在这个主题上有很多深度,但是为了更复杂的目的.

我需要知道是什么导致产生这种不可行的结果,如何防止它,以及如何在ASP.NET 4项目中可靠地配置打字稿,包括新项目和现有项目,以便这种不可行的情况永远不会发生或者可以很快可靠地纠正.

如果您有任何关于此的信息,或者与可能提供部分解释的内容相交的任何经验,我欢迎您的回复.

typescript typescript1.5

9
推荐指数
1
解决办法
1893
查看次数

在Emacs组织模式中转义字符

假设我想在org-mode中转义字符,例如,_以便org-mode呈现以下内容:

* _TARGET_
Run Code Online (Sandbox Code Playgroud)

在我的设置中(我认为是默认设置)org-mode强调单词而不是渲染 _TARGET_

更一般地说,在哪里可以找到有关如何在Emacs org-mode中转义字符的信息?

emacs org-mode

8
推荐指数
2
解决办法
8554
查看次数

为什么__future__ import*引发错误?

我使用了以下导入:

from __future__ import *
Run Code Online (Sandbox Code Playgroud)

但得到了这个错误:

SyntaxError: future feature * is not defined (<pyshell#0>, line 1)
Run Code Online (Sandbox Code Playgroud)

这个错误是什么意思?

python python-internals

8
推荐指数
2
解决办法
994
查看次数

不能从fx = f 1 y推导出f = f 1?

{-# LANGUAGE GADTs #-}

data Foo x y where
  Composition :: Foo b c -> Foo a b -> Foo a c
  FMap :: Functor f => (a->b) -> Foo (f a) (f b)

asFunction :: Foo a b -> a->b
asFunction (FMap m) = fmap m
-- asFunction (Composition (FMap m) (FMap n)) = fmap m . fmap n
asFunction (Composition m n) = asFunction m . asFunction n
Run Code Online (Sandbox Code Playgroud)

这可以按预期工作......直到你取消注释第二个子句asFunction!这实际上只是一个特殊情况的内联版本,其他两个模式已经匹配,所以我希望它没问题.但是(ghc-7.6.2或者也是ghc-7.4.1)

Could not deduce …
Run Code Online (Sandbox Code Playgroud)

haskell typechecking unification gadt

7
推荐指数
1
解决办法
196
查看次数

如何在Chrome实例之间同步localStorage(或使用没有发布扩展名的chrome.storage.sync)?

以下是我的情况:我已经编写了许多Chrome用户脚本供我个人使用.以前,我只有一台机器上有一个Chrome实例,所以我非常乐意将任何持久数据转储到localStorage.

但是,我现在有多台机器,并希望在所有机器上的Chrome上使用我的用户脚本,我的持久数据随之而来.如果有点繁琐(将其粘贴在Bitbucket仓库中,然后拉动并手动安装),同步用户脚本代码本身很简单,但我不知道如何跨机器同步我的localStorage数据.

我考虑过将我的用户脚本转换为正确的Chrome扩展程序并使用chrome.storage API(如果您的Chrome帐户已连接到我的Chrome实例,那么使用chrome.storage.sync存储的数据显然可以同步).但是,这是我的用例的问题:

  • 为了同步您的数据,您似乎必须将扩展程序发布到Chrome商店.
  • 我不希望我的扩展程序在Chrome商店中公开可见,因为1.)这需要花钱; 2.)一些扩展本质上是"敏感的".
  • 即使我花钱并因此解决(1.),我发现在Chrome商店中添加私人扩展程序的唯一方法是使用Google Apps for Work或Education(参见"发布私有Chrome应用")),我显然没有Google Apps的个人实例.

那么:有没有办法让我能够直接在机器之间同步localStorage,或者2.)使用chrome.storage.sync API而不使用公开发布的Chrome扩展程序?

javascript google-chrome local-storage google-chrome-extension

7
推荐指数
1
解决办法
4511
查看次数

为什么这种映射/条件类型在推断"this"的类型与明确接收它时的行为方式不同?

请考虑以下代码,该代码使用v2.8中引入的 TypeScript语言功能(条件类型):

type P<TObject, TPropertySuperType> = {
    [K in keyof TObject]: TObject[K] extends TPropertySuperType ? K : never;
}[keyof TObject];

function g<
    T,
    K extends keyof Pick<T, P<T, string>>
    >(obj: T, prop: K): void { }

class C {
    public alpha: string;
    public beta: number;

    public f(): void {
        g(this, "alpha"); // <-- does not compile!
        g(this, "beta");

        g<C, "alpha">(this, "alpha");
        g<C, "beta">(this, "beta");

        g(new C(), "alpha");
        g(new C(), "beta");

        this.g2("alpha");
        this.g2("beta");

        this.g2<"alpha">("alpha");
        this.g2<"beta">("beta");
    }

    public g2<
        K extends …
Run Code Online (Sandbox Code Playgroud)

typescript typescript2.8

7
推荐指数
1
解决办法
75
查看次数