小编psm*_*ars的帖子

为什么不能使用var而不是在ngFor中使用

根据我的知识,我们在javascript中使用varlet用于变量声明,唯一的区别是var得到了当前函数的let作用域,同时将作用域限定为当前块.所以如果我使用它var而不是let任何地方它应该工作.但是在下面的代码中......

<li *ngFor="let fruit of fruits">
   {{ fruit}}
</li>
Run Code Online (Sandbox Code Playgroud)

...如果我使用var它会给出错误.

<li *ngFor="var fruit of fruits">
   {{ fruit}}
</li>
Run Code Online (Sandbox Code Playgroud)

错误:未捕获(在承诺中):错误:模板分析错误:分析程序错误:ng:///AppModule/AppComponent.html@4:4中的[var fruit of fruits]中第1列的意外标记变量("

有人能告诉我为什么会这样吗?

javascript var let angular

10
推荐指数
1
解决办法
1278
查看次数

如何在Django模板中添加,乘以数字变量?

我创建的JS片段依赖于{% for key, value in data.items %}..{% endfor %}标记中可用的forloop.counter变量.

有没有办法将数学运算符(*, - ,+,/)与forloop.counter变量一起使用?

tags for-loop django-templates

9
推荐指数
3
解决办法
4万
查看次数

如何在C中的共享内存中创建信号量?

我的任务是创建两个不同的C文件,然后使用信号量进行进程同步(我同时运行两个C文件).

我主要担心的是:如果我想在两个进程中访问信号量(C文件的可执行文件),我需要在共享内存中创建信号量.我还需要创建二进制信号量.

因为这是我的第一个程序,有人可以建议如何开始这个吗?

我能够创建和使用共享内存,在线程中使用信号量.我在YouTube上看了一些讲座,但找不到合适的解决方案.

c semaphore shared-memory

9
推荐指数
2
解决办法
1万
查看次数

将浮动初始化为'+ inf',' - inf'和'nan'的替代方法

要将float常量初始化为+ inf,-inf,nan我总是使用带有字符串的float():

print(float('inf'), float('+inf'), float('-inf'), float('nan'))
Run Code Online (Sandbox Code Playgroud)

这打印:

[inf, inf, -inf, nan]
Run Code Online (Sandbox Code Playgroud)

1.)Python中是否存在初始化这些常量的替代方法(不使用字符串调用float)?

2.)我可以用一些数学运算产生这些常数(+/- inf,nan)吗?

例如,对于变量设置f+inf,通过编写类似f = 1.0 / 0.0(显然,这是零错误分公司).

python python-3.x

9
推荐指数
2
解决办法
1201
查看次数

在Java中强制用户填写varargs参数的好方法

我想在调用构造函数时强制用户填写可选参数:

public MyClass(String... params) {
    this.params = params;
}
Run Code Online (Sandbox Code Playgroud)

目前,以下代码有效:

new MyClass();
Run Code Online (Sandbox Code Playgroud)

我想阻止它.我想到了这个:

public MyClass(String param1, String... otherParams) {
    this.params = new String[1 + otherParams.length];
    this.params[0] = param1;
    // fill 1..N params from otherParams
}
Run Code Online (Sandbox Code Playgroud)

String[] params 不是一个选项,因为我需要能够使用逗号分隔的args.

有没有很好的解决方案来实现这一目标?请不要说varargs参数必须是可选的.问题不在于此.

java variadic-functions

8
推荐指数
2
解决办法
871
查看次数

为什么库中不调用全局变量的构造函数?

我有一些遗留代码,其中包含一些使用全局变量的构造函数注册自身的单例类。这是一个很大的代码库,被编译成一个可执行文件。我尝试组织代码库并将代码重新分组到库中。当前代码的一个最小示例是

主程序

int main(int argc, char *argv[])
{
  return 0;
} 
Run Code Online (Sandbox Code Playgroud)

哈希.cpp

#include <iostream>

class Hash
{
public:
    Hash()
    {
        std::cout << "Hash\n";
    }
};

Hash a;
Run Code Online (Sandbox Code Playgroud)

当前的构建配置是

CMakeLists.txt

cmake_minimum_required(VERSION 3.26)
project(mcve)

add_executable(mcve main.cpp Hash.cpp)
Run Code Online (Sandbox Code Playgroud)

构建代码并运行可执行文件

Hash
Run Code Online (Sandbox Code Playgroud)

我已将构建配置修改为

cmake_minimum_required(VERSION 3.26)
project(mcve)

add_library(Hash Hash.cpp)
add_executable(mcve main.cpp)
target_link_libraries(mcve Hash)
Run Code Online (Sandbox Code Playgroud)

这将创建一个静态库libHash.a并将其链接到可执行文件。编译相同的代码并运行可执行文件不会打印任何内容。为什么会出现这种差异?在哪里进行了描述?它是 C++ 标准的一部分还是编译器的一部分?它是特定于操作系统的(Linux 静态库)吗?这是未定义的行为吗?

c++ linux static-libraries

8
推荐指数
1
解决办法
889
查看次数

C中任何更快的RMS值计算?

我正在用C编写一个小型8位微控制器的软件.部分代码是读取电流互感器(ZCT)的ADC值,然后计算RMS值.流过ZCT的电流是正弦曲线但可能会失真.我的代码如下:

float       adc_value, inst_current;
float       acc_load_current;           // accumulator = (I1*I1 + I2*I2 + ... + In*In)
double      rms_current;

// Calculate the real instantanous value from the ADC reading
inst_current = (adc_value/1024)*2.5;    // 10bit ADC, Voltage ref. 2.5V, so formula is: x=(adc/1024)*2.5V                           

// Update the RMS value with the new instananous value:
// Substract 1 sample from the accumulator (sample size is 512, so divide accumulator by 512 and substract it from the accumulator)
acc_load_current -= (acc_load_current / 512);       
inst_current *= …
Run Code Online (Sandbox Code Playgroud)

c algorithm performance microcontroller

7
推荐指数
2
解决办法
9376
查看次数

Roman Numeral为整数函数

基本上我正在尝试创建一个将罗马数字转换为整数的函数.

我有一个数组:

$roman_numerals=[
    'M'  => 1000,
    'CM' => 900,
    'D'  => 500,
    'CD' => 400,
    'C'  => 100,
    'XC' => 90,
    'L'  => 50,
    'XL' => 40,
    'X'  => 10,
    'IX' => 9,
    'V'  => 5,
    'IV' => 4,
    'I'  => 1
];
Run Code Online (Sandbox Code Playgroud)

我对PHP很新,所以我仍然习惯于思考的方式,所以请记住我还在学习:)

这是我的功能 - 或者我到目前为止:

//Array
function romanToInteger($key)
{
$roman_numerals=[
    'M'  => 1000,
    'CM' => 900,
    'D'  => 500,
    'CD' => 400,
    'C'  => 100,
    'XC' => 90,
    'L'  => 50,
    'XL' => 40,
    'X'  => 10,
    'IX' …
Run Code Online (Sandbox Code Playgroud)

php foreach integer function roman-numerals

7
推荐指数
1
解决办法
223
查看次数

如何分别维护每个线程的状态

我有一个int x应该同时从多个线程访问的字段.我希望x每个线程都有一个单独的副本,每个副本都以其原始值开始.我尝试使用volatile关键字执行此操作,但每个新线程仍会修改x其他线程.

这是一个代码示例:

public class StackOverflowThread0 {

    public StackOverflowThread0() {
        new A().start();
    }

    public static void main(String[] args) {
        new StackOverflowThread0();
    }

    volatile int x = 0;//<--keep original for each thread?

    class A extends Thread {

        @Override
        public void run() {
            try {
                while (true) {
                    getT().start();

                    Thread.sleep(1000);
                }
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
        }
    }

    Thread getT() {
        Thread t = new Thread() {

            @Override
            public void run() { …
Run Code Online (Sandbox Code Playgroud)

java multithreading

7
推荐指数
1
解决办法
844
查看次数

如何在制作bash脚本时将Linux从Windows 10 bash中分离出来

我正在制作一个bash脚本.我的自定义bashrc,更准确.我需要有单独的配置,这取决于我所在的"Linux"(Windows 10 Linux子系统或实际的Linux).

我怎么能分开呢?

我试过的事情:

  1. $OSTYPE - 都回来了 linux-gnu
  2. uname -a - 两者都返回相似 Linux COMPUTER_NAME_HERE 3.4.0+ #1 PREEMPT Thu Aug 1 17:06:05 CST 2013 x86_64 x86_64 x86_64 GNU/Linux
  3. lsb_release -a - 都回来了 ubuntu xx.xx
  4. cat /etc/issue.net - 都回来了 Ubuntu 14.04.4 LTS
  5. ld -v - 都回来了 GNU ld (GNU Binutils for Ubuntu) 2.24

我发现这项工作的唯一方法是为Windows子系统设置一些特定的用户名,并使用$USER,但这不是我愿意使用的选项.我需要这个开箱即用,没有自定义用户名,环境变量等.

bash windows-10

7
推荐指数
1
解决办法
359
查看次数