嗨,我有一个可观察的用户$,有很多属性(名称,标题,地址......)
component{
user$:Observerable<User>;
constructor(private userService:UserService){
this.user$ = this.userService.someMethodReturningObservable$()
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在html模板中使用异步管道来订阅它并将其绑定到这样的局部变量
<div #user="user$ | async">
<h3> {{user.name}}
</div>
Run Code Online (Sandbox Code Playgroud)
我知道可以在构造函数中订阅它然后在OnLeave/OnDestroy中取消订阅但我只是好奇我是否可以使用异步管道.
干杯
pipe local-variables typescript angular2-observables angular
如何在C#中声明一个局部常量?
与在Java中一样,您可以执行以下操作:
public void f(){
final int n = getNum(); // n declared constant
}
Run Code Online (Sandbox Code Playgroud)
如何在C#中做同样的事情?我试着用readonly和const,但没有一个似乎工作.
任何帮助将不胜感激.
谢谢.
我在3年多的时间里没有使用过C,我在很多方面都很生气.
我知道这可能看起来很愚蠢,但我现在无法从函数返回一个字符串.请假设:我不能string.h用于此.
这是我的代码:
#include <ncurses.h>
char * getStr(int length)
{
char word[length];
for (int i = 0; i < length; i++)
{
word[i] = getch();
}
word[i] = '\0';
return word;
}
int main()
{
char wordd[10];
initscr();
*wordd = getStr(10);
printw("The string is:\n");
printw("%s\n",*wordd);
getch();
endwin();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我可以捕获字符串(使用我的getStr函数)但我无法正确显示它(我得到了垃圾).
感谢帮助.
我正在用 Java 练习 lambda 表达式。根据 Java SE 16 Lambda Body的 Oracle 文档,我知道局部变量需要是 final 或有效 final 的:
任何使用但未在 lambda 表达式中声明的局部变量、形式参数或异常参数必须是 final 或有效 final (§4.12.4),如 §6.5.6.1 中所述。
但它没有说为什么。搜索我发现了这个类似的问题为什么 lambdas 中的变量必须是最终的或有效的最终?,其中 StackOverflow 用户“snr”回复了下一个引用:
到目前为止,Java 中的局部变量不受竞争条件和可见性问题的影响,因为它们只能被执行声明它们的方法的线程访问。但是一个 lambda 可以从创建它的线程传递到另一个线程,因此如果由第二个线程评估的 lambda 被赋予改变局部变量的能力,那么这种免疫力就会丧失。
这就是我的理解:一个方法一次只能由一个线程(比如说 thread_1)执行。这确保该特定方法的局部变量仅由 thread_1 修改。另一方面,可以将 lambda 传递给不同的线程 (thread_2),因此...如果 thread_1 完成 lambda 表达式并继续执行方法的其余部分,则它可能会更改局部变量的值,并且,在同时,thread_2 可能会更改 lambda 表达式中的相同变量。然后,这就是存在此限制的原因(局部变量需要是 final 或有效 final 的)。
对不起,很长的解释。我做对了吗?
但接下来的问题是:
我对Java没有太多经验。对不起,如果我的问题有明显的答案。
def method
a = 3
b = 4
some_method_that_gives # [a, b]
end
Run Code Online (Sandbox Code Playgroud) 我在 Javascript 中最喜欢犯的错误之一是忘记定义我在函数中本地使用的变量。众所周知,由于范围的原因,这并不总是错误。
Visual Studio Code 中是否有任何方法可以突出显示函数中未定义的变量?
例如,假设我有以下功能:
function MyFunction(argument1){ /* Note: not argument5 */
var i; /* Note: not j */
var arr1 = []; /* Note: not arr2 */
... /*Exciting code in between */
len = 7;
for(j=0;j<len;j++){
arr2[j] = "Wibble" + argument5;
}
}
Run Code Online (Sandbox Code Playgroud)
我希望len、j、arr2和argument5all 以某种方式突出显示,以表明它们没有在函数中本地定义。
我正在调试一个相当奇怪的堆栈溢出,据说是在堆栈上分配太大的变量引起的,我想澄清以下内容.
假设我有以下功能:
void function()
{
char buffer[1 * 1024];
if( condition ) {
char buffer[1 * 1024];
doSomething( buffer, sizeof( buffer ) );
} else {
char buffer[512 * 1024];
doSomething( buffer, sizeof( buffer ) );
}
}
Run Code Online (Sandbox Code Playgroud)
我理解,它依赖于编译器,也取决于优化器决定什么,但为这些局部变量分配内存的典型策略是什么?
输入功能后是否会立即分配最坏情况(1 + 512千字节)或首先分配1千字节,然后根据条件另外分配1或512千字节?
c++ stack-overflow memory-management local-variables visual-c++
如果赋值是函数中的局部变量,如何在bash中检查命令替换的退出代码?
请参阅以下示例.第二个是我想检查退出代码的地方.
有人有一个良好的解决方案或正确的解决方案吗?
$ function testing { test="$(return 1)"; echo $?; }; testing
1
$ function testing { local test="$(return 1)"; echo $?; }; testing
0
Run Code Online (Sandbox Code Playgroud) 我对在Ruby中动态设置局部变量感兴趣.不创建方法,常量或实例变量.
所以类似于:
args[:a] = 1
args.each_pair do |k,v|
Object.make_instance_var k,v
end
puts a
> 1
Run Code Online (Sandbox Code Playgroud)
我特别想要局部变量,因为所讨论的方法存在于模型中,我不想污染全局或对象空间.
对不起这个问题,但这个问题真的搞砸了我的一天.
以下代码警告10应该:
var globalId='10';
function check(){
alert(globalId);
}
check();
Run Code Online (Sandbox Code Playgroud)
但是下一个代码警告未定义:
var globalId='10';
function check(){
alert(globalId);
var globalId;
}
check();
Run Code Online (Sandbox Code Playgroud)
我知道如果我在函数中声明一个变量,它是一个局部变量,但如果我已经将它声明为全局变量,那么我的警报怎么说未定义呢?
这是一个简单的例子,但在我的原始代码中,我在函数的开头之间做了很多东西,然后我检查了很长时间以查看是否globalId已定义,否则定义它:if(!globalId){var globalId;}这意味着我的警报位于函数顶部生成未定义,好像JavaScript首先执行整个函数,只是为了查看是否可以声明任何变量,如果是,则声明它们,因此我的警报指向'未声明'变量.
任何人都可以向我解释为什么会发生这种情况,并且如果JavaScript在执行函数之前"预先声明"所有变量,那么甚至在甚至不满足的条件下声明的变量也是如此?
local-variables ×10
javascript ×2
ruby ×2
angular ×1
bash ×1
c ×1
c# ×1
c++ ×1
exit-code ×1
immutability ×1
java ×1
lambda ×1
pipe ×1
readonly ×1
return ×1
string ×1
typescript ×1
variables ×1
visual-c++ ×1