小编Dav*_*gal的帖子

为什么我不能在 C# 中的不同作用域中声明具有相同名称的变量?

不确定这是否是因为 C# 编译器非常挑剔,但我尝试在 C# 中执行此操作:

public static void Main()
{
    bool result = true; // some dummy value
    if(result)
    {
        int x = 5;
        Console.WriteLine(x);
    }

    int x = 10;
    Console.WriteLine(x);
}
Run Code Online (Sandbox Code Playgroud)

编译器抱怨变量名“x”已被使用:

不能在此作用域中声明名为“x”的局部变量,因为它会给“x”赋予不同的含义,而“x”已在“子”作用域中用于表示其他内容。

我知道它认为这是一个范围问题,但为什么它会这么认为呢?

如果我用 Java 重现相同的代码,就没有问题。

c# scope

5
推荐指数
1
解决办法
3866
查看次数

如何在Perl中使用多个键对哈希数组进行排序?

我在Perl中引用了一个哈希列表,如下所示:

my $students = [
    { name => "Johnson", age => 19, gpa => 2.5, major => "CS" },
    { name => "Jones", age => 18, gpa => 2.0, major => "IT" },
    { name => "Brown", age => 19, gpa => 2.2, major => "SE" }
];
Run Code Online (Sandbox Code Playgroud)

我需要name按键对该列表进行升序和降序排序.我知道Perl sort函数,但这对我来说有点混乱,有哈希和多个键.

我正在尝试这个(关于我在SO上看过的其他问题):

foreach my $key (sort {$%students->{name}}) {
    print $students{$key} . "\n";
}
Run Code Online (Sandbox Code Playgroud)

但它并不完全存在(获得语法错误).

sorting perl hash

0
推荐指数
1
解决办法
86
查看次数

标签 统计

c# ×1

hash ×1

perl ×1

scope ×1

sorting ×1