有一个数字short int x = 29798_10 = 7466_16 = 0111 0100 0110 0110_2
要完成float y = 011.1 0100 0110 0110_2 = 3.637451171875
如何使用二元运算符得到这个数字?
Pavel Perevezencev's questions
需要加密 tcp 连接。我正在尝试覆盖 conn net.Conn 对象的 Read 方法
type Stream struct {
conn net.Conn
alg algorithms.CipherAlgorithm
}
func (s *Stream) Read(p []byte) (n int, err error) {
var buf bytes.Buffer
len, err := buf.ReadFrom(s.conn)
if err != nil {
return 0, err
}
p, err = s.alg.Decrypt(buf.Bytes())
if err != nil {
return 0, err
}
return int(len), err
}
func (s *Stream) Write(p []byte) (n int, err error) {
ciphertext, err := s.alg.Encrypt(p)
if err != nil {
return 0, err
}
return s.conn.Write(ciphertext)
}
当我尝试从套接字读取消息并解码 json
encriptedConnection := encription.NewStream(conn, &algorithms.DES{symmetricKey})
var credentials struct{ Login, Password string }
err = json.NewDecoder(encriptedConnection).Decode(&credentials)
if err != nil {
log.Println(err.Error())
}
我收到这样的错误
2018/04/03 19:59:17 invalid character '\x00' looking for beginning of value
问题是如何更改从 tcp 套接字读取的内容?
一个像这样的项目
root-dir/
package.json
src/
module-A/
webpack.config.js
package.json
module-B/
webpack.config.js
package.json
module-A
并module-B
需要相同的依赖项(在我的情况下是react, redux, babel, webpack
......)
我想将所有这些常见的依赖项声明为更高的级别root-dir/package.json
,并使它们在中module-A
和中可用module-B
那些。如果我yarn webpack
从module-A
它运行,它是webpack
使用src/module-A
.
这是否可能,如果可以,它是如何实施的?
给定一组具有大约以下内容的数组:
[
[D6],
[D5],
[D5, D6],
[D3, D6],
[D4],
[D4, D6],
[D4, D5],
[D4, D5, D6]
...
]
有必要从这些数组中找到所有重复序列(大于 2 个元素)。对于上面的例子:
[
[D6],
[D5],
[D5, D6],
[D3, D6],
[D4],
[D4, D6],
[T1],
[T1, D6]
...
]
最后两个数组包含子集 [D4, D5] => 在子集 [D4, D5] 出现在 T1 的所有数组中发生变化。
首先想到的是生成这些数组元素的所有可能组合,然后遍历数组并查找条目,但在我看来这不是最好的解决方案,如何更优化地解决这个问题?
UPD: 想到的第二件事是寻找数组的交集,但是您必须对每个数组进行迭代,但在我看来,有一个更优化的解决方案
我对golang很熟悉,对指针很困惑。
type Transition struct {
ID string
InitialState *State
CurrentState *State
Input string
Output string
Stimul *int
}
func (t *Transition) SetStimul(stimul int) {
t.Stimul = &stimul
}
func (sm StateMachine) Fill() StateMachine {
sort.Sort(sm)
i := 0
for _, t := range sm {
if t.InitialState.code == nil {
t.InitialState.SetCode(i)
i++
}
}
// сигналы выозбуждения
for _, t := range sm {
t.SetStimul(*t.InitialState.code)
}
return sm
}
我更改了 Transition.Stimul 指针的值(它最初是 nil),但它仍然显示 nil(最后一列)。
2 A1 A2 00000 00001 <nil>
3 A2 A3 00001 00010 <nil>
4 A3 A4 00010 00011 <nil>
5 A4 A5 00011 00100 <nil>
6 A5 A6 00100 00101 <nil>
7 A5 A1 00100 00000 <nil>
8 A6 A7 00101 00110 <nil>
9 A7 A8 00110 00111 <nil>
10 A8 A9 00111 01000 <nil>
11 A9 A10 01000 01001 <nil>
12 A10 A11 01001 01010 <nil>
13 A11 A12 01010 01011 <nil>
14 A12 A13 01011 01100 <nil>
15 A13 A14 01100 01101 <nil>
16 A14 A15 01101 01110 <nil>
17 A15 A16 01110 01111 <nil>
18 A15 A16 01110 01111 <nil>
19 A16 A17 01111 10000 <nil>
20 A16 A17 01111 10000 <nil>
21 A17 A18 10000 10001 <nil>
22 A18 A19 10001 10010 <nil>
23 A19 A20 10010 10011 <nil>
24 A20 A21 10011 10100 <nil>
25 A21 A22 10100 10101 <nil>
26 A22 A23 10101 10110 <nil>
28 A23 A14 10110 01101 <nil>
29 A23 A14 10110 01101 <nil>
30 A24 A25 10111 11000 <nil>
31 A25 A26 11000 11001 <nil>
32 A26 A21 11001 10100 <nil>
我究竟做错了什么?
完整代码: https: //play.golang.org/p/a1874uZafs
我这样写新的字段值:
func (b *Block) Write(addr, info int) {
b.Addr = addr
b.Info = info
b.IsChange = true
fmt.Println("write", b)
}
我在更改值(“write”)和最后(“result”)后显示值。价值观不变
write &{1 25 true true}
result {7 44 false false}
有一个用 RubyOnRails 编写的后端和一个用 React (create-react-app) 编写的前端。前端配置代理
"proxy": {
"/api/*": {
"target": "http://0.0.0.0:3000/",
"ws": true,
"pathRewrite": {
"^/api": "/"
}
}
},
Docker-compose 用于运行
version: "3"
volumes:
app-gems:
driver: local
services:
db:
image: postgres
api:
build:
context: ./api
volumes:
- app-gems:/usr/local/bundle
- ./api:/usr/src/app
ports:
- "3000:3000"
depends_on:
- db
web:
build:
context: ./web
volumes:
- ./web:/usr/src/app
ports:
- "80:3000"
depends_on:
- api
通过它启动时docker-compose up
,代理不起作用(它只是找不到 localhost:3000)。如果你在端口 3000 上运行 api,并且前端是独立的,那么一切正常,为什么会这样?
像这样配置 webpack + babel
webpack.config.js
...
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
loader: 'babel-loader'
},
...
.babelrc
{
"plugins": ["lodash", "transform-object-rest-spread"],
"presets": [
["env", {
"targets": [
"> 4%",
"ie 11",
"safari 8"
]
}],
"react",
"react-optimize"
],
"env": {
"test": {
"presets": ["es2015", "react"]
}
}
}
我在 chrom 中运行一切正常,在 IE 11 中它给出了一个错误
对象不支持属性或方法“分配”
如何从字符串owner/:ownerUUID/pets/:petUUID
中提取参数名称ownerUUID
和petUUID
?
makeRequestURL(url, params) {
console.log("makeRequestURL", url.match(/:(.*)/g));
}
有一个表格,其中呈现产品组:
当您单击一行时,应向其添加更多行(组打开),如下所示:
(点击蓝线呈现 2 条红线)
我正在尝试这样做:
import React from "react";
class App extends React.Component {
renderGroups(groups) {
return groups.map(({ group: { name } }, index) => (
<tr key={index} className="group" onClick={this.onGroupToggle}>
<td>{name}</td>
<td>g-1.1</td>
<td>g-1.2</td>
<td>g-1.3</td>
<td>g-1.4</td>
<td>g-1.5</td>
</tr>
));
}
renderProducts(products) {
return products.map(({ name }) => (
<tr key={index} className="product">
<td>{name}</td>
<td>g-1.1</td>
<td>g-1.2</td>
<td>g-1.3</td>
<td>g-1.4</td>
<td>g-1.5</td>
</tr>
));
}
onGroupToggle() {
console.log("onGroupToggle");
// какие то непонятные действия
// которые должны привести к инжекту tr.product после tr.group
}
render() {
const groups = [
{
group: {
group_id: 1,
name: 'Телефоны'
},
products: [
{
product_id: 1,
name: 'iPhone 7'
}, {
product_id: 1,
name: 'iPhone 7 Plus'
}
]
}
];
return (
<table border="1">
<thead>
<tr>
<th>name</th>
<th>1</th>
<th>2</th>
<th>3</th>
<th>4</th>
<th>5</th>
</tr>
</thead>
<tbody>
{this.renderGroups(groups)}
</tbody>
</table>
);
}
}
App.propTypes = {
example: React.PropTypes.object
};
export default App;
如何在 React 中正确实现它,因为我无法在 renderGroups 中返回 2 tr。
renderProducts(products) {
return products.map(({ name }) => (
<tr key={index} className="group">
<td>{name}</td>
<td>g-1.1</td>
<td>g-1.2</td>
<td>g-1.3</td>
<td>g-1.4</td>
<td>g-1.5</td>
</tr>
<tr key={index} className="product">
<td>{name}</td>
<td>g-1.1</td>
<td>g-1.2</td>
<td>g-1.3</td>
<td>g-1.4</td>
<td>g-1.5</td>
</tr>
<tr key={index} className="product">
<td>{name}</td>
<td>g-1.1</td>
<td>g-1.2</td>
<td>g-1.3</td>
<td>g-1.4</td>
<td>g-1.5</td>
</tr>
));
}
怎么做才对?
更新
示例:有一个 Tables 组件接受一个 TableRows 组件作为道具,该组件呈现表格中的所有行(在该组件内,我用 tbody 中的组名称和产品行包装一个字符串),但是如果该组件返回几个“ tbody" fidl自然会返回一个错误
TableRows.render():必须返回一个有效的 ReactComponent。您可能返回了未定义、数组或其他一些无效对象。
我需要在表格上放置一个 div,以便它可以相对于该表格的单元格移动。
这是一个例子,告诉我如何获得类似的效果,阅读什么(和在哪里)?
有这段代码:
import React, { Component } from "react";
import Content from "../../../../Core/Scripts/Components/Helpers/Content";
如何缩短核心文件夹的路径以像这样使用它:
import React, { Component } from "react";
import { Content } from "core";
我正在尝试为 webpack-dev-server 和 rails 设置代理。在http://192.168.1.223:3000/设置轨道。我正在尝试在客户端上设置代理
webpack.config.js
const path = require("path");
const webpack = require("webpack");
module.exports = {
entry: {
index: [
"./src/init"
],
},
output: {
publicPath: "/",
path: __dirname + "/public/",
filename: "[name].js"
},
module: {
loaders: [{
test: /\.js$/,
exclude: /(node_modules)/,
loaders: ["react-hot", "babel"]
}]
},
devServer: {
contentBase: "./public",
hot: true,
historyApiFallback: true,
proxy: {
"/api": {
target: "http://192.168.1.223:3000/",
pathRewrite: {
"^/api": ""
}
}
}
}
};
我在端口 8080 上启动开发服务器。我打开http://localhost:8080/api,我看到所有 Rails 请求都以http://192.168.1.223:3000/api/request的形式出现,尽管我要求发送请求到http://192.168.1.223:3000/request我该如何解决这个问题?