小编Mar*_*lli的帖子

检查protobuf消息 - 如何通过名称获取字段值?

我似乎无法找到一种方法来验证protobuf消息中的字段的值,而无需显式调用其getter.

我看到围绕这些示例使用Descriptors.FieldDescriptor实例来到达消息映射内部,但它们要么基于迭代器,要么由字段编号驱动.

一旦我有了地图:

Map<Descriptors.FieldDescriptor, Object> allFields = myMsg.getAllFields();
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得字段的价值"fieldXyz"

我知道我可以使用myMsg.getFieldXyz(),但这不能系统地使用.

如果没有办法按名字访问字段值,我想知道这个选择背后的理由是什么.我可能还是要理解protobuf"哲学":-)

java protocol-buffers

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

使用ES6导入+导出关键字和Babel导入/导出Express路由器

我有一个最初使用Express 2.X构建的旧测试项目.我正在将它移动到Express 4.x并尝试插入Babel 6.x来试验服务器端的ES6功能.

Express 4.x的更新没问题.原始应用程序工作正常.当我开始添加ES6功能时会出现问题.

我特别想替换所有requiremodule.export说明书用ES6 import {...} from...export {...}.

问题:我似乎无法将外部文件中的路由导入主app.js文件.

我的app.js加载路线如下:

import { indexRoute } from './routes/index_route';
app.use('/', indexRoute);
Run Code Online (Sandbox Code Playgroud)

里面index_route.js我有:

"use strict";
import express from 'express';
var router = express.Router();

router.get('/', function(req, res, next) {
  res.render('index_view', { title: 'Express' });
});

export { router }
Run Code Online (Sandbox Code Playgroud)

这个源代码适用于Babel,但节点在启动时会抱怨:

Router.use() requires middleware function but got a undefined
Run Code Online (Sandbox Code Playgroud)

我有两个文件index_route.js,每个文件用于一组路由,而AFAIS它们都导入+修改+导出相同的路由器对象.在任何情况下,使用ES6关键字完成的导出+导入都会返回undefined.

我究竟做错了什么?我在错误的对象上使用ES6关键字吗?我是否使用过时的指令来配置里面的路线app.js

node.js express babeljs

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

理解组合仿函数类型的操作

根据几个消息来源,构成仿函数的Haskell实现或多或少如下:

import Data.Functor.Compose

newtype Compose f g a = Compose { getCompose :: f (g a) }

instance (Functor f, Functor g) => Functor (Compose f g) where
    fmap f (Compose x) = Compose (fmap (fmap f) x)
Run Code Online (Sandbox Code Playgroud)

我的问题是:最后一个定义中x的类型什么?

我会说是f g a,但即使在那里我也很难"看到"计算fmap (fmap f) x

任何人都可以为这一点提供一个明确而完整的工作实例吗?什么fmapping一个TreeMaybe的关注两者Empty的和Node的?

先感谢您.

haskell functional-programming functor

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

<*>对于按照表示法实现的列表 - 这不是"作弊"吗?

根据'Learn you a Haskell',<*>for list 的实现是:

fs <*> xs = [f x | f <- fs, x <- xs]
Run Code Online (Sandbox Code Playgroud)

我错了,还是基于这个加糖的monadic代码>>=

据我了解,应该可以实现<*>仅使用fmap,因为应用程序可能就是这种情况.

如何<*>仅使用列表实现列表fmap?(可能没有连接东西?)

顺便说一句,几页后,我看到关于执行同一个问题<*>的应用性IO.

haskell list applicative

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

使用多个 git 存储库的 Webpack 模块联合。有例子吗?

我正在Webpack 5 模块联盟的世界中寻找自己的出路。有很多很好的材料和例子,比如这个这个

然而,我发现的所有示例都是在单个 Git 存储库中构建的,通常使用npm 工作区和/或嵌套的 package.json 文件。

由于我要在多个 Git 存储库之间实现模块联合,因此我希望看到一个完全实现这一点的示例。有人发现这样的例子吗?

我假设这项工作是在遥控器的定义中完成的;我见过一些通过 URL 定义远程的情况,但在我的情况下,所有远程都将在构建时已知,所以我认为 URL 是多余的。我对吗?

git webpack webpack-module-federation

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

Firefox 中没有 showSaveFilePicker - 我可以使用什么来代替?

我非常惊讶地发现 FF 不支持window.showSaveFilePicker

caniuse-showSaveFilePicker

我可以在 FF 中使用什么来允许以编程方式从浏览器保存文件?

也许有人可以解释一下 FF 不支持此功能的原因是什么?

firefox desktop webapi showsavefilepicker

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

What are the scenarios one should use isRequired for PropType vs defaultProps in React Application

我一直在努力理解,我到底应该在什么时候使用.isRequiredvs.defaultProps={...} 我的想法是,我认为我永远不应该真正需要使用 isRequired,因为它似乎手动创建了一个可以破坏应用程序的错误,因为 create isRequired 会自动删除需要添加相应的默认道具,这让我感到不舒服,因为这意味着我无法期待故障安全值。

这绝对听起来是一个基于意见的问题,但我会寻找更好的意见,如果有的话更有意义。

javascript design-patterns reactjs react-proptypes

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

Recharts:如何才能在工具提示中仅显示一个数据点的值?

我试图在 Recharts LineChart 中实现以下示例:工具提示值相对于蓝点,因为我的鼠标恰好靠近它,并且距离具有相同 x 值的灰点更远。如果我将鼠标移近灰点,工具提示内容会发生变化。

工具提示仅显示有关一个数据系列的数据

然而,所有可用的示例都表明,图表工具提示接收有关正在绘制的所有数据系列的数据,并且似乎无法区分最接近鼠标的点,因此工具提示可能仅提供其值。

有没有办法指定我想要将数据发送到工具提示的点?

tooltip reactjs recharts

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

Opera用户代理:Opera还是OPR?

大多数专业网站都提到Opera用户代理都包含"Opera"这个词.

这个来自Opera开发人员的旧帖子提到了字符串'OPR'.

关键是:我的网站定期接收来自'OPR'浏览器的访问,而没有来自'Opera'.

今天早上的例子:

Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36 OPR/34.0.2036.42
Run Code Online (Sandbox Code Playgroud)

将我的访问者的UA字符串传递给几个在线UA分析器,结果表明"OPR"是普通的Chrome.

任何人都可以确认真正的Opera浏览器是否在其用户代理中有"Opera"?

browser opera user-agent

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

研究ghci(-&gt;)并尝试扎根

我正在尝试使用ghci调查类型(->)

我很想知道为什么我可以问:t (+),但不是:t (->)

Prelude> :t (->)
<interactive>:1:2: error: parse error on input ‘->’
Run Code Online (Sandbox Code Playgroud)

幸运的是,两个运算符都允许使用进行调查:i,所以我想都是因为它(+)是Num类的方法,而(->)只是一个数据。

深入探讨(->)

Prelude> :i (->)
data (->) (a :: TYPE q) (b :: TYPE r)   -- Defined in ‘GHC.Prim’
infixr 0 ->
instance Applicative ((->) a) -- Defined in ‘GHC.Base’
instance Functor ((->) r) -- Defined in ‘GHC.Base’
instance Monad ((->) r) -- Defined in ‘GHC.Base’
instance Monoid b => Monoid (a …
Run Code Online (Sandbox Code Playgroud)

haskell ghci

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