小编Jon*_*ast的帖子

在C++中使用C头时,我们应该使用std ::或全局命名空间中的函数吗?

C在某种程度上并不完全是C++的一个子集.因此,我们可以通过更改名称(stdio.hto cstdio,stdlib.hto cstdlib)来使用C++中的大多数C函数/头文件.

我的问题实际上是一种语义.在C++代码(使用GCC编译器的最新版本),我可以打电话printf("Hello world!");,并std::printf("Hello world!");和它的工作原理完全一样.在我使用它的参考中也显示为std::printf("Hello world!");.

我的问题是,它是否更适合std::printf();在C++中使用?有区别吗?

c++ std language-lawyer

106
推荐指数
3
解决办法
6042
查看次数

Swift子类UIView

我刚刚开始使用Swift.我已经阅读了这本书,并且在学习的过程中我学到了更多东西.

我想子类UIView并显示像视图一样的登录.我在Objective-C中创建了这个,但现在我想把它移植到Swift.我不使用故事板,所以我在代码中创建了所有的UI.

但第一个问题是我必须实施initWithCoder.我给它一个默认的实现,因为它不会被调用.现在,当我运行该程序时,它崩溃了,因为我也要实现initWithFrame它.现在我明白了:

override init() {
    super.init()
    println("Default init")
}

override init(frame: CGRect) {
    super.init(frame: frame)
    println("Frame init")
}

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    println("Coder init")
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我应该在哪里创建我的文本域等...如果我从未实现框架和编码器,我怎么能"隐藏"这个?

ios swift

89
推荐指数
4
解决办法
7万
查看次数

Swift中的Array <T>,ContiguousArray <T>和ArraySlice <T>有什么区别?

在Swift 2中,三种阵列变体之间的主要区别是什么:

  • 排列
  • ContiguousArray
  • ArraySlice

任何人都能用现实世界的例子来解释这个吗?

swift swift2

19
推荐指数
1
解决办法
3953
查看次数

Haskell:实际的IO monad实现,用不同的语言?

IO monad实际上是如何实现的?在意义上,该main函数的实际实现是什么?

我如何从另一种语言调用haskell函数(IO),在这种情况下,我是否需要维护IO自己?

是否main将IO操作(Lazily)作为引用拉出然后调用它们?或者它是解释工作,当它发现它可以调用它们的方式的行动?或者别的什么?

有不同语言的IO monad实现是否有助于深入理解主要功能中发生的事情?

编辑:

hGetContents让我很困惑,让我不确定IO是如何真正实现的.

好吧,假设我有一个非常简单的纯Haskell解释器,不幸的是没有IO支持,并且为了好奇,我想向它添加这个IO动作(unsafeIO技巧也).很难从GHC,Hugs或其他人那里得到它.

io monads interpreter haskell

15
推荐指数
5
解决办法
3938
查看次数

QuickCheck推广功能的一般情况是什么?

具有类似QuickCheck promote功能的结构的仿函数的一般术语是什么,即形式的函数:

promote :: (a -> f b) -> f (a -> b)
Run Code Online (Sandbox Code Playgroud)

(这是反过来的flip $ fmap (flip ($)) :: f (a -> b) -> (a -> f b)).除了(->) r和之外,是否还有任何具有此类操作的仿函数Id?(我相信一定有).谷歌搜索'quickcheck promote'只显示了QuickCheck文档,该文档没有提供promote任何更一般的上下文AFAICS; 搜索"快速检查促销"的SO不会产生任何结果.

haskell functional-programming functor quickcheck category-theory

9
推荐指数
2
解决办法
271
查看次数

如何在redis缓存中存储protobuffer对象?

我使用 Jedis 作为 java 客户端来连接到 Redis 服务器。我还使用协议缓冲区将数据写入 jedis 或 redis 缓存中。但是我没有找到如何将 protobuf 对象写入或设置为 redis 的方法。我是否遗漏了什么或 Jedis 没有提供将 protobuf 对象存储为值的方法?

protocol-buffers redis

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

如何在Spring数据休息中添加自定义拦截器(spring-data-rest-webmvc 2.3.0)

我正在研究spring数据休息服务并面临自定义拦截器中的一些问题.之前我使用了spring-data-rest-webmvc 2.2.0并以下列方式添加了拦截器.

public RequestMappingHandlerMapping repositoryExporterHandlerMapping() {
        RequestMappingHandlerMapping mapping = super
                .repositoryExporterHandlerMapping();

        mapping.setInterceptors(new Object[] { new MyInterceptor() });

        return mapping;
}
Run Code Online (Sandbox Code Playgroud)

它对我来说非常好.但是当我升级到spring-data-rest-webmvc 2.3.0版本时,我注意到handlerMapping隐藏在DelegatingHandlerMapping之后.因此我尝试以下列方式添加拦截器.

在我的一个配置类中,我扩展了RepositoryRestMvcConfiguration类并覆盖了它的方法.

public class AppConfig extends RepositoryRestMvcConfiguration {
@Autowired ApplicationContext applicationContext;

@Override
public DelegatingHandlerMapping restHandlerMapping()
    {
        RepositoryRestHandlerMapping repositoryMapping = new RepositoryRestHandlerMapping(super.resourceMappings(), super.config());
        repositoryMapping.setInterceptors(new Object[] { new MyInterceptor()});
        repositoryMapping.setJpaHelper(super.jpaHelper());
        repositoryMapping.setApplicationContext(applicationContext);
        repositoryMapping.afterPropertiesSet();

        BasePathAwareHandlerMapping basePathMapping = new BasePathAwareHandlerMapping(super.config());
        basePathMapping.setApplicationContext(applicationContext);
        basePathMapping.afterPropertiesSet();
        List<HandlerMapping> mappings = new ArrayList<HandlerMapping>();
        mappings.add(basePathMapping);
        mappings.add(repositoryMapping);

        return new DelegatingHandlerMapping(mappings);

    }
}
Run Code Online (Sandbox Code Playgroud)

但在添加之后,我的一些存储库操作(存储库上的findAll()操作)开始失败.如果我删除了这个拦截器,那些操作就可以了.(在这个拦截器中我只是验证用户.)因此我无法理解这里的问题.我是以错误的方式添加拦截器吗?有没有其他方法来添加拦截器?

spring-data-rest

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

如何在Amazon Cloud(AWS EC2)中安装firefox?

我有一个具有所有特权的AWS账户。我想在环境中安装Firefox,因为我的应用程序将启动Firefox并针对Web应用程序运行一些测试。

如何安装Firefox?

firefox amazon-web-services

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

Haskell - 无法将类型[]与IO匹配

我是Haskell的新人.为什么我收到错误消息

(无法在下面的代码中将类型'[]'与'IO' - Haskell匹配.

在主要方面,我只需要运行算法的时间而没有结果.

只想测量算法时间.

qsort1 :: Ord a => [a] -> [a]
qsort1 []     = []
qsort1 (p:xs) = qsort1 lesser ++ [p] ++ qsort1 greater
    where
        lesser  = [ y | y <- xs, y < p ]
        greater = [ y | y <- xs, y >= p ]

main = do
    start <- getCurrentTime
    qsort1 (take 1000000 $ randomRs (1, 100000) (mkStdGen 42))
    end <- getCurrentTime
    print (diffUTCTime end start) 
Run Code Online (Sandbox Code Playgroud)

haskell types program-entry-point quicksort match

4
推荐指数
1
解决办法
1426
查看次数

$; $在Perl函数定义中意味着什么?

我得到以下代码:

sub deg2rad ($;$) { my $d = _DR * $_[0]; $_[1] ? $d : rad2rad($d) }

谁能告诉我什么$;$意思?

perl

4
推荐指数
1
解决办法
337
查看次数

当没有任何改变时,如何阻止 GHC 重新编译模块?

我有以下目录结构:

  • libgs - 基本的全局脚本抽象机和标准库
  • gsi - 全局脚本解释器
  • gs2hs - Haskell 编译器的全局脚本

大部分(当然不是全部)代码是用全局脚本编写的,并由 Haskell 程序 hsgs2hs 转换为 Haskell。

因此,gsi 和 gs2hs 中的代码都依赖于 libgs 中的模块。

由于我的代码组织有些草率,gs2hs 中的编译器还依赖于 gsi 目录中的前端模块(解析器、类型检查器等)。

撇开法律不谈:如果重要的话:我的代码可以在线免费获得,但不是开源的,并且其许可证不允许通过Hackage 重新分发。结束合法性。

我可以通过运行使这个目录结构工作

ghc --make -i../libgs gsi.hs -o gsi
Run Code Online (Sandbox Code Playgroud)

在 gsi 目录中,以及

ghc --make -i../libgs -i ../gsi gs2hs.hs -o gs2hs
Run Code Online (Sandbox Code Playgroud)

在 gs2hs 目录中。

这有一个问题,每次我按顺序进行两个构建时,GHC 都会重新编译 libgs 目录中的每个模块以及 gsi 目录中的每个共享模块,告诉我“标志已更改”。

我想,好吧,我可能应该在 Haskell 中使用包来重用代码,对吗?所以我将 libgs 转换为包:

  • 将 libgs.cabal 文件添加到该目录,将所有模块列为公开模块。
  • 添加一个 libgs/install-all 脚本,在构建 gsi 和 gs2hs 之前运行cabal install --lib --package-env $REPO_ROOT/package.env …

haskell ghc cabal cabal-install

2
推荐指数
1
解决办法
199
查看次数