小编zer*_*ing的帖子

引用和 Box<T> 在内存中的表示方式有什么区别?

我试图了解引用和Box<T>工作方式。让我们考虑一个代码示例:

fn main() {
    let x = 5;
    let y = &x;

    assert_eq!(5, x);
    assert_eq!(5, *y);
}
Run Code Online (Sandbox Code Playgroud)

在我的想象中,Rust 将内存中的值保存为:

在此处输入图片说明

考虑第二个代码片段Box<T>

fn main() {
    let x = 5;
    let y = Box::new(x);

    assert_eq!(5, x);
    assert_eq!(5, *y);
}
Run Code Online (Sandbox Code Playgroud)

将如何x存储Box?内存是什么样子的?

上面的例子来自使用DerefTrait处理像常规引用一样的智能指针。对于第二个例子,本书将其解释为:

y示例15-7 和示例15-6 之间的唯一区别是,这里我们设置为指向 in 值的框的实例,x而不是指向 值的引用x

这是否意味着y在框中直接指向 value 5

rust

14
推荐指数
1
解决办法
845
查看次数

Traversable类型类的目的

有人可以向我解释,类型类的目的是Traversable什么?

类型定义是:

class (Functor t, Foldable t) => Traversable (t :: * -> *) where
Run Code Online (Sandbox Code Playgroud)

Traversable是一个Functor tFoldable t.

traverse函数是其成员Traversable并具有以下签名:

traverse :: Applicative f => (a -> f b) -> t a -> f (t b)
Run Code Online (Sandbox Code Playgroud)

为什么结果必须包含在应用程序中?有什么意义呢?

我有以下示例:

module ExercisesTraversable where

  import Test.QuickCheck (Arbitrary, arbitrary)
  import Test.QuickCheck.Checkers (quickBatch, eq, (=-=), EqProp)
  import Test.QuickCheck.Classes (traversable)

  type TI = []

  newtype IdentityT a = IdentityT a
    deriving (Eq, Ord, Show)

  instance …
Run Code Online (Sandbox Code Playgroud)

haskell

13
推荐指数
3
解决办法
736
查看次数

在es6中用jest进行单元测试

我在反应世界中很新,并试图编写简单的朋友列表应用程序.我用es6风格编写了我的朋友商店,并使用babel作为es5到es6的转换器.

import AppDispatcher from '../dispatcher/app_dispatcher';
import { EventEmitter } from 'events';
import FRIENDS_CONST from '../constants/friends';

const CHANGE_EVENT = 'CHANGE';

let friendsList = [];


let add = (name) => {

    let counter = friendsList.length + 1;
    let newFriend = {
        id: counter,
        name: name
    };

    friendsList.push(newFriend);

}

let remove = (id) => {
    let index = friendsList.findIndex(e => e.id == id);
    delete friendsList[index];
}


let FriendsStore = Object.assign({}, EventEmitter.prototype, {

    getAll: () => {
        return friendsList;
    },

    emitChange: () => { …
Run Code Online (Sandbox Code Playgroud)

unit-testing node.js reactjs

12
推荐指数
1
解决办法
1万
查看次数

monoid和applicative是如何连接的?

我正在阅读有关应用程序并尝试理解它的haskellbook.

在书中,作者提到:

因此,使用Applicative,我们的结构和功能应用为我们的价值观提供了Monoid!

monoid如何连接到applicative?

haskell

12
推荐指数
1
解决办法
452
查看次数

将 CompletableFuture 转换为协程

我是 Kotlin 世界的新手,想知道是否可以转换CompletableFutureCoroutine或如何一起使用。

为什么我想这样做,因为AsyncCrudRepository的所有方法都会返回CompletableFuture.

kotlin kotlin-coroutines

11
推荐指数
1
解决办法
8740
查看次数

快速路线返回是否必要

我为我的webapp使用快速框架.我从书中提取了一些代码,查看了这段代码,这是一个到页面的路径.

app.post('/register', function(req, res) {
  var firstName = req.param('firstName', '');
  var lastName = req.param('lastName', '');
  var email = req.param('email', null);
  var password = req.param('password', null);

  if ( null == email || email.length < 1
       || null == password || password.length < 1 ) {
    res.send(400);
    return;
  }
Run Code Online (Sandbox Code Playgroud)

什么在这里有意义的回报,是必要的吗?

express

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

更改工具栏素材设计的高度

如何在材料设计中更改md-toolbar的高度?

http://jsfiddle.net/kostonstyle/gsroofa5/

在第一个工具栏上,我想要一个30px的高度并尝试:

<md-toolbar style:"height: 30px;">
Run Code Online (Sandbox Code Playgroud)

但它根本不起作用.我需要一个带有两个散装的导航栏,因为有两个工具栏.

我试试这个,但现在信件消失了.

http://jsfiddle.net/kostonstyle/r178sp9o/1/

angularjs angular-material

10
推荐指数
4
解决办法
2万
查看次数

抽象数据类型和代数数据类型之间的区别

有人可以告诉我,抽象数据类型和代数数据类型有什么区别?

scala

10
推荐指数
2
解决办法
1667
查看次数

为什么未来有副作用?

我正在阅读FPiS一书,在第107页上,作者说:

我们应该注意到Future没有纯粹的功能界面.这就是为什么我们不希望我们图书馆的用户直接处理Future的部分原因.但重要的是,即使Future上的方法依赖于副作用,我们的整个Par API仍然是纯粹的.只有在用户调用run并且实现接收到我们公开Future机制的ExecutorService之后.因此,我们的用户可以编程为纯粹的界面,但其实现仍然依赖于当天结束时的效果.但由于我们的API仍然纯净,这些效果不是副作用.

为什么Future还没有纯粹的功能界面?

functional-programming scala

10
推荐指数
3
解决办法
1361
查看次数

找不到模块:无法解析'material-ui/styles/colors'

我有以下代码,没有编译:

import React from 'react';
import { AppBar, Toolbar } from 'material-ui';
import { Typography } from 'material-ui';
import { MuiThemeProvider, createMuiTheme } from 'material-ui/styles';
import {cyan, red} from 'material-ui/colors';
import { red400 } from 'material-ui/styles/colors';


const theme = createMuiTheme({
  palette: {
    primary: red400,
    secondary: cyan, 
  },
});

const View = (props) => (
  <MuiThemeProvider theme={theme}>
    <AppBar position="static">
      <Toolbar>
      <Typography variant="title">
        {props.title}
      </Typography>          
      </Toolbar>
    </AppBar>
  </MuiThemeProvider>
);
export default View;
Run Code Online (Sandbox Code Playgroud)

它说:

Failed to compile
./src/Dashboard/AppBar/Views/View.js
Module not found: Can't resolve …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs material-ui

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