来自Ruby世界,我立刻明白为什么Crystal选择不实现一个for方法.但后来我惊讶地发现Crystal 确实for为宏实现了一种方法.我更惊讶地发现宏不允许可枚举(.each等)语法(即{% ["one", "two", "three"].each do |value| %}不是有效的宏语法).
这种语法差异是否有合理的原因?答案很可能就是〜"因为开发人员认为宏语法看起来像x,而非宏语法看起来像y",但我猜测它还有更多的东西(任意语法不一致似乎一个缺陷).
谢谢!
我有一个泛型类,其中类型参数是一个元组。我在类上创建一个方法时遇到问题,该方法的参数仅限于元组的索引。
例如(游乐场链接):
class FormArray<T extends [any, ...any[]]> {
constructor(public value: T) {}
// how to restrict `I` to only valid index numbers of `T` ?
get<I extends keyof T>(index: I): T[I] {
return this.value[index];
}
}
Run Code Online (Sandbox Code Playgroud)
我知道您可以做的是keyof获取元组上的所有属性,其中包括与元组包含的对象关联的键(即“0”、“1”等)。不幸的是,keyof会拉入元组的所有属性,包括“长度”、“拼接”等。
我尝试使用keyof并排除所有不属于 type 的属性number,但后来我意识到索引属性(“0”、“1”等)是由keyofas type返回的string。
目前可以在 TypeScript 中完成此任务吗?
我知道可以使用不同的sha算法生成RSA密钥.使用openssl,我似乎没有选择指定密钥生成器应该使用的算法.我怀疑它正在使用sha256.
如何在bash shell或Ruby中使用不同的sha算法(如sha512)生成RSA密钥?openssl库是否支持使用不同的算法生成RSA密钥?如果没有,有没有人知道我可以使用的另一个库?(在ruby中,OpenSSL::PKey::RSA似乎不允许选择算法,但文档很难让我遵循soo ......?)
抱歉,如果这个问题已经得到解答,但我找不到答案.
也许我也应该注意(如果我错了):我的理解是,为生成的RSA密钥(即RSA 2048)选择大小与选择散列算法(即sha512)是分开的.
更新 - 一些背景
我想用RSA密钥签署Java Web Tokens.我正在使用的JWT库给我的印象是可以使用不同的散列算法(RS256,RS384,RS512)生成RSA密钥.使用生成密钥openssl似乎并没有让我选择使用什么散列算法.
谢谢!!
正如firebase 函数文档中(间接)提到的,https 函数应该支持在请求/响应标头中操作 cookie。
如果您需要注入 cookie 支持或 CORS 等中间件依赖项,请在函数中调用它们。
但是,以下 HTTPS 函数向客户端返回不包含标头的响应:set-cookie
functions.https.onRequest(async (request, response) => {
response.set('access-control-allow-origin', '*');
response.cookie('TEST COOKIE', 'Success!!!!');
console.log(response.get('set-cookie'));
response.json({ status: 'success' });
});
Run Code Online (Sandbox Code Playgroud)
奇怪的是,对的调用console.log(response.get('set-cookie'))显示set-cookie标头是在函数调用中的该点设置的。因此,不知何故,set-cookie标头被从响应中剥离。这看起来确实像 firebase 函数实际上并不支持操作 cookie。
有人知道发生了什么事吗?我已经尝试解决这个问题几个小时了:(
在我的编程课程(c ++)中,讲师告诉我们:
"编写一个输入未指定数量的整数("int")值的程序,然后输出输入的最小值和最大值.将始终输入至少一个值.(读取所有输入直到EOF).当用户根本没有输入任何整数(只是EOF)时,信用使你的程序也能正常工作."
我想得到想象,所以,在我的解决方案中,当刚EOF进入时,程序会响应"Oops! You didn't enter anything. Please try again, this time entering at least one integer: "并再次提示输入.
我的导师说这个答案是错误的,因为
在EOF之后,应该没有更多的程序输入(用户和程序都没有预期) - 使用
EOF从输入的"一种模式"切换到另一种输入模式不支持标准.
EOF我在互联网上发现的每一个定义似乎都不支持我教授的定义.EOF从我所知道的,简单地定义为当前文件的结尾.接受来自用户的EOF输入,然后对该输入执行某些操作,然后EOF再次请求其他输入似乎是完全有效的.EOF,我们只被告知这EOF意味着"文件结束"并且可能"用于表示结束用户输入"(重要的是,因为,即使我的教授是错的,有人可能会说,如果他特意告诉我们,我应该采用他的标准.但他没有告诉我们).使用EOF用户输入的正确方法是什么?我教授的陈述是"在EOF之后,应该没有更多的输入程序"使用EOF的标准和预期方式吗?如果程序接受可变数量的输入,对其执行某些操作,然后接受更多变量输入,那么使用EOF这些输入是不可接受的(while(cin >> user_input)也就是说不在该场景中使用)?如果是这样,在您多次接受变量输入的情况下,是否有一个标准用于表示输入结束?
我对作业的确切解决方案如下.我对主要作业的解决方案"编写一个输入未指定数量的整数("int")值的程序,然后输出输入的最小值和最大值"被认为是正确的,通过赋值的第二部分"make当用户根本没有输入任何整数(只是EOF)时,你的程序也可以工作."被认为是不正确的("使程序也能正常工作"是我们给出的唯一提示).
非常感谢任何反馈!! 显然,我对我的教授反馈/决定持怀疑态度,但总的来说,我只是想了解一下C++社区标准.
#include <iostream>
#include <iomanip>
#include <string>
#include <stdlib.h>
using namespace std;
int main(){
string user_input;
int int_input, min_user_input, max_user_input;
bool do_it = true;
cout << "Hi …Run Code Online (Sandbox Code Playgroud) 我正在构建一个 GraphQL API。返回联合/接口类型字段时,是否可以让服务器告诉我对象类型?即像这样的东西
{
search(text: "an") {
... on Human {
__type
name
height
}
... on Droid {
__type
name
primaryFunction
}
... on Starship {
name
length
}
}
}
// or even better
{
search(text: "an") {
__type // <--- even though it's a Union query, everything has a type right? :/
... on Human {
name
height
}
... on Droid {
name
primaryFunction
}
... on Starship {
name
length
}
}
}
Run Code Online (Sandbox Code Playgroud)
哪个会返回
{ …Run Code Online (Sandbox Code Playgroud) c++ ×1
cookies ×1
crystal-lang ×1
firebase ×1
graphql ×1
graphql-ruby ×1
json ×1
jwt ×1
rsa ×1
sha512 ×1
typescript ×1