我正在https://riptutorial.com/sed/example/13753/lines-matching-regular-expression-pattern阅读 sed 教程。
好像
$ sed -n '/[A-Z]/ s| |/|gp' ip.txt
Run Code Online (Sandbox Code Playgroud)
正在从文件中过滤“Add Sub Mul Div”,并将其转换为“Add/Sub/Mul/Div”
考虑到我刚刚阅读了https://www.tldp.org/LDP/abs/html/x23170.html ,我真的不理解正则表达式。
它甚至不匹配打印语法,即:
[address-range]/p
Run Code Online (Sandbox Code Playgroud)
是管道符号'|' 这里交替?
谁能解释一下:
'/[A-Z]/ s| |/|gp'
Run Code Online (Sandbox Code Playgroud)
用英语?
我还发现 's' 之前和 '/' 之后的额外空格是允许的,并且不会做任何事情。正确的语法应该是:
[address-range]/s/pattern1/pattern2/
Run Code Online (Sandbox Code Playgroud)
sed模式的语法检查不严格,容易混淆
我正在开发一个节点插件,但在使用 node-gyp 构建后查找库时出现错误。
这是我的 binging.gyp 文件:
{
"targets": [{
"target_name": "xaddon",
"cflags!": [ "-fno-exceptions" ],
"cflags_cc!": [ "-fno-exceptions" ],
"sources": [
"cppsrc/main.cc"
],
'include_dirs': [
"<!@(node -p \"require('node-addon-api').include\")", "lib"
],
"libraries": ["<(module_root_dir)/lib/xaddon.so"],
'dependencies': [
"<!(node -p \"require('node-addon-api').gyp\")"
],
'defines': [ 'NAPI_DISABLE_CPP_EXCEPTIONS' ]
}]
}
Run Code Online (Sandbox Code Playgroud)
这正确构建,如果我将 so 文件放在项目的根文件夹中,则一切正常。但我想在 lib 文件夹中运行一个包含文件的项目。
这是我尝试在 lib 文件夹而不是根文件夹中运行项目 so 文件时出现的错误。
Error: dlopen(#PATH_TO_PROJECT#/build/Release/xaddon.node, 1): Library not loaded: xaddon.so
Referenced from: #PATH_TO_PROJECT#/build/Release/xaddon.node
Reason: image not found
Run Code Online (Sandbox Code Playgroud) 我想从一个组件访问另一个组件的状态。为此,我只想将 contextprovider 包装到单击按钮时状态发生变化的组件,并从 usehook 返回状态,以便另一个组件可以访问该状态。
下面是在没有应用上下文的情况下组件的外观,
function UploadButton () { //this is where state is set
const [isDialogOpen, setIsDialogOpen] = React.useState(false);
const handleClick = () => {
setIsDialogOpen(!isDialogOpen);
}
return (
<>
<Button onClick={handleClick}/>
{isDialogOpen && <Upload/>}
</>
);
}
function UserButton() { //this is where state is accessed
return (
<Icon/> //this icon should be displayed only if !isDialogOpen
);
}
Run Code Online (Sandbox Code Playgroud)
上下文如下所示,我在 UploadButton 所在的同一文件中有 DialogContext。
interface DialogCtxState {
isDialogOpen: boolean;
setIsDialogOpen: React.Dispatch<React.SetStateAction<boolean>>;
}
const initialDialogState: DialogCtxState = {
isDialogOpen: …Run Code Online (Sandbox Code Playgroud) 如标题所示 - 当我在 React/Redux 应用程序中重新加载页面时,用户正在注销。我将令牌存储在 localStorage 中,但它不起作用,因此可能有任何错误。用户登录时应存储令牌。注销工作正常。这是我的代码:
auth.js(reducers 目录 - Redux):
import { LOGIN_SUCCESS, LOGIN_FAIL, LOGOUT_SUCCESS, REGISTER_SUCCESS, REGISTER_FAIL } from '../actions/types';
const initialState = {
token: localStorage.getItem('token'),
isAuthenticated: null,
isLoading: false,
isRegistered: false
}
export default function(state = initialState, action) {
switch(action.type) {
case REGISTER_SUCCESS:
return {
...state,
...action.payload,
token: null,
isAuthenticated: false,
isLoading: false,
isRegistered: true
}
case LOGIN_SUCCESS:
localStorage.setItem('token', action.payload.token);
return {
...state,
...action.payload,
isAuthenticated: true,
isLoading: false,
}
case LOGIN_FAIL:
case LOGOUT_SUCCESS:
case REGISTER_FAIL:
localStorage.removeItem('token');
return { …Run Code Online (Sandbox Code Playgroud) 我很惊讶这会发生在 javascript 中,但是当我开发算法时,我注意到了这一点。
当我将“mt”数组放入“wm”常量中,并更改“mt”数组中的值时,该值会在“wm”数组中更改。为什么会这样?我怎样才能使这不会发生?
我问这个是因为“wm”,在我看来,应该包含“mt”数组的副本,除非我直接修改它,否则不应该改变。
我有一个公开为 http://localhost:8080/test/api/v1/qc/{id} 的 Http 端点用于删除,在进行此 API 删除调用时,我必须用正确的 id 替换
我使用 python 的 requests 模块尝试了以下方法
param = {
"id" : 1
}
requests.delete(url = http://localhost:8080/test/api/v1/qc/{id}, params=param)
Run Code Online (Sandbox Code Playgroud)
此 API 调用因错误而中断
ValueError: No JSON object could be decoded.
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?