我想在 formik 中使用 yup 验证我的表单。假设我有 4 个字段 A、B、C、D,它们都是字符串。如果我想让至少一个字段不为空,我应该如何编写验证模式,那么这是一个有效的表单?提前致谢!
我试图了解如何使用 opentelemetry 来使用和发送日志,但发现它很令人困惑。假设我正在开发一个应用程序(最好使用javascript)并且想要在应用程序中记录内容并将日志发送到后端(例如天蓝色监视器),最好的方法是什么?对于跟踪和指标,opentelemetry 提供 api/sdk 来直接将跟踪/指标导出到后端或通过收集器。然而,我对日志如何工作的理解却截然不同。在我看来 opentelemetry 确实提供了一些api/sdk,但我不确定我是否应该将它用作应用程序开发人员。我在 opentelemetry 日志概述中看到,它提到了以下两件事:
OpenTelemetry 定义了用于发出 LogRecords 的 API。不鼓励应用程序开发人员直接调用此 API。它供库作者构建 Appender,后者使用 API 在现有日志记录库和 OpenTelemetry 日志数据模型之间建立桥梁。现有的日志记录库通常提供比 OpenTelemetry 中定义的更丰富的功能集。OpenTelemetry 的目标不是提供功能丰富的日志库。
OpenTelemetry 定义了用于发出事件的 API。该 API 由一些方便的方法组成,这些方法委托给 API 来发出 LogRecords。鼓励应用程序开发人员直接调用此 API。
我如何知道应用程序开发人员或库作者是否应该使用 javascript 中的此api/sdk来构建 Appender?看来这个 api/sdk 既可以发出事件,也可以发出 LogRecords。
我理解 opentelemetry 日志架构的目的是确保我们无法控制的日志和可控日志(如格式)具有相关性和上下文信息,因此一种方法(称为通过文件或标准输出日志)是保存日志到一些中间介质,然后发送到收集器(我的理解这更多是不可控日志的情况)。第二种方法(称为“直接发送到收集器”)是将日志直接发送到收集器。在第二种方式的文档中,它提到“实现此目的最方便的方法是为常用的日志记录库提供插件或扩展。”,这是什么意思?插件或者扩展是指上面提到的Appender吗?我很欣赏这两种方法在 javascript 中的一些代码示例,尤其是第二种方法。
我想获取回收站的路径。我在网上搜索发现有人使用shell32并获取回收站中的文件列表。但是,我只想获取回收站的路径,因为我的目的是在将 IncludeSubdirectories 设置为 true 时从文件监视程序中排除监视器回收站。使用shell32获取文件列表的代码如下所示,但我不知道如何获取回收站的路径。
Shell Shl = new Shell();
Folder Recycler = Shl.NameSpace(10);
for (int i = 0; i < Recycler.Items().Count; i++)
{
FolderItem FI = Recycler.Items().Item(i);
string FileName = Recycler.GetDetailsOf(FI, 0);
if (Path.GetExtension(FileName) == "") FileName += Path.GetExtension(FI.Path);
string FilePath = Recycler.GetDetailsOf(FI, 1);
Console.WriteLine(FilePath);
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我想用python在两台计算机之间传输文件.我在客户端使用ftplib模块,在服务器端使用pyftpdlib.但是,我得到错误"socket.error:[Errno 10061]没有连接,因为目标机器主动拒绝它".我的代码如下:
客户端代码:
import ftplib
ftp = ftplib.FTP("sever_ip")
ftp.login("username", "password")
ftp.retrlines("LIST")
Run Code Online (Sandbox Code Playgroud)
服务器端代码:
from pyftpdlib import servers, handlers
address = ('', 21)
server = servers.FTPServer(address, handlers.FTPHandler)
server.serve_forever()
Run Code Online (Sandbox Code Playgroud)
我运行服务器端代码并得到:
[I 15-05-28 11:14:41] >>> starting FTP server on :::21, pid=8296 <<<
[I 15-05-28 11:14:41] poller: <class 'pyftpdlib.ioloop.Select'>
[I 15-05-28 11:14:41] masquerade (NAT) address: None
[I 15-05-28 11:14:41] passive ports: None
Run Code Online (Sandbox Code Playgroud)
我运行客户端代码并得到:
socket.error: [Errno 10061] No connection could be made because the target machine actively refused it
Run Code Online (Sandbox Code Playgroud)
我需要在目标计算机(服务器)上更改或检查哪些设置才能使其接受连接?(我的服务器是Windows Sever 2012R2,我的客户端是Windows 8)
更新:我打开了服务器的防火墙,然后重新运行了客户端请求.现在我得到了一个不同的错误:
socket.error: [Errno …
Run Code Online (Sandbox Code Playgroud) 我目前正在学习 React 和 React hook。使用 useState 的经典示例如下:
const [count, setCount] = useState(0);
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么返回的数组是 const?我认为至少 count 的值会随着时间的推移而改变。
我正在编写一个问题的代码:写一个方法来排序一个字符串数组,以便所有的字谜彼此相邻.如果我的容器是vector,它将非常简单,因为vector有迭代器并且可以在STL sort函数中使用,这是下面的代码:但是如果容器是一个数组呢?Array没有迭代器,也不能使用sort()直接对数组进行排序.我想知道有没有办法创建一个数组迭代器,以便我可以使用sort()直接对数组进行排序?谢谢 !
#include <iostream>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
bool compare(string s1, string s2){
sort(s1.begin(), s1.end()); //sort return void, not the sorted result!!!!!!!!!!
sort(s2.begin(), s2.end());
return s1<=s2;
}
void sort_string(vector<string> &v){
sort(v.begin(), v.end(), compare);
}
Run Code Online (Sandbox Code Playgroud)
#
If I want to use array itertor:
bool compare(string s1, string s2){
sort(s1.begin(), s1.end());
sort(s2.begin(), s2.end());
return s1<=s2;
}
int sortStrarr(string strarr[], int len){
//sort(strarr's iterator.begin, strarr's iterator.end, compare); ???
}
Run Code Online (Sandbox Code Playgroud) 在我的网页上,我有一个div
(如下所示),其中包含我希望屏幕阅读器阅读的文本。
超文本标记语言
<div tabIndex={0}>
"text needs to be read"
</div>
Run Code Online (Sandbox Code Playgroud)
我什至不需要提供咏叹调标签就可以听到文本被读取。不过,我听说“文字需要组读”。我想知道如何避免说“团体”?我没有为 div 标签设置组角色。
这是另一个更清晰地描述问题的例子
<span class="jw-icon jw-icon-inline jw-button-color jw-reset jw-text-live" tabindex="-1" data-clicked="true">Live</span>
Run Code Online (Sandbox Code Playgroud)
在任何浏览器中运行上面的代码片段。它使屏幕阅读器将其宣布为“Live,group”。有什么办法可以减轻这种行为。预期的行为应该像屏幕阅读器应将其读作“实时”
React 中两个不同父级的子级可以有相同的键吗?例如,将它们放在同一页面中可以吗?
<div key='parent1'>
<div key='child1'></div>
<div key='child2'></div>
</div>
<div key='parent2'>
<div key='child1'></div>
<div key='child2'></div>
</div>
Run Code Online (Sandbox Code Playgroud) 假设我有一个std::unordered_set<int>
命名为myset
,我想从返回一个随机数myset
的O(1)
时间.我首先rand()
用来生成一个随机数:
int n = rand() % myset.size();
Run Code Online (Sandbox Code Playgroud)
然后,我做:
myset.begin() + n;
Run Code Online (Sandbox Code Playgroud)
我想知道是否myset.begin() + n
在O(n)
或O(1)
?
谢谢!
我编写了代码来构建二进制搜索树,还编写了一个bfs二进制搜索树来测试它是否有效,但我收到了很多错误,我调试它们已经很长时间了,无法找到错误.
#include<vector>
template<typename Key, typename Value>
struct BSTNode{
Key key;
Value value;
BSTNode * left;
BSTNode * right;
BSTNode(Key k, Value v, BSTNode *l=NULL, BSTNode *r=NULL) :
key(k), value(v), left(l), right(r) {}
};
template<typename Key, typename Value>
BSTNode<Key, Value>* min_height(std::vector<int> &v, int left, int right ) {
if(left<=right){
int mid=left+ (right-left)/2;
BSTNode<Key, Value>* node=new BSTNode<Key, Value>(v[mid], v[mid]);
node->left=min_height(v, left, mid-1 );
node->right=min_height(v, mid+1, right );
return node;
}
}
int main(){
std::vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
BSTNode<int, int>* root=min_height(v, 0, …
Run Code Online (Sandbox Code Playgroud) 我有一个关于将c字符串传递给函数的问题.
如果我有一个功能:
void reverse(char* c){
//here is the reverse code
}
Run Code Online (Sandbox Code Playgroud)
主要:
int main(){
char* c1="abcd";
char c2[5]="abcd";
char * c3=new char[5];
c3="abcd";
}
Run Code Online (Sandbox Code Playgroud)
在我的测试中,只有c1不允许传入函数,其他两个工作正常.我想知道为什么c1是错误的用法?非常感谢你!