小编use*_*121的帖子

为什么不在 if/else 末尾添加分号 (;)?

在 Rust 中,我注意到除了两种语句之外,一切都是表达式。添加的每个表达式都;将成为一个语句。Rust 的语法希望语句遵循其他语句。

那么为什么我们不在/ “表达式”;的末尾添加呢?这也是一个表达式,那么我们为什么不这样做:ifelse

if true {
    println!("true");
} else {
    println!("false");
};
Run Code Online (Sandbox Code Playgroud)

syntax expression if-statement rust

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

Dart 中两个相同内容的数组不相等?

我有个问题。使用 Dart 时,我无法检查 2 个数组是否相等。(在其他语言中,我可以使用 == 来实现)事实上,我可以使用 String 或 number 来实现 == 。

List arr1 = [1,2,3];
List arr2 = [1,2,3];

if (arr1 == arr2) {
  print("equal");
} else {
  print("not equal");
}
Run Code Online (Sandbox Code Playgroud)

// 输出:不相等。

所以我想知道这有什么意义。我的意思是,如果 == 仅适用于字符串或数字的情况(如果比较的值相同),我们该怎么办。如果我想检查列表、映射等的比较(相等),我该怎么做。它只适用于字符串和数字。

dart

4
推荐指数
1
解决办法
714
查看次数

在Dart中升序和降序排序?

我有这个

var nlist = [4,2,1,5];
var compare = (a, b) => a.compareTo(b);
nlist.sort(compare);
print(nlist);        // [1,2,4,5]
Run Code Online (Sandbox Code Playgroud)

在这里(其中我改变了(b, a)(a, b))

var nlist = [4,2,1,5]
var compare = (b, a) => a.compareTo(b);
nlist.sort(compare);
print(nlist);        // [5,4,2,1]
Run Code Online (Sandbox Code Playgroud)

为什么这个小修改会从升序变为降序?

sorting dart

4
推荐指数
5
解决办法
4336
查看次数

将2个参数传递给Haskell中的函数

在Haskell中,我知道如果我定义这样的函数,add x y = x + y
那么我就这样调用add e1 e2.该调用等同于(add e1) e2
这意味着应用于add一个参数会e1产生一个新函数,然后将该函数应用于第二个参数e2.

这就是我在Haskell中无法理解的.在其他语言(如Dart)中,为了完成上述任务,我会这样做

add(x) {
  return (y) => x + y;
}
Run Code Online (Sandbox Code Playgroud)

我必须明确return一个函数.那么"产生一个新函数然后应用于第二个参数"的部分是否会在Haskell中自动执行?如果是这样,那个"隐藏"功能是什么样的?或者我只是想念哈斯克尔?

haskell function

3
推荐指数
1
解决办法
6832
查看次数

vim 映射键到需要参数的命令

作为标题,假设我必须在 vim 中运行此命令<command> <argument>

在我的.vimrc我设置let mapleader = ,

所以在正常模式下,如果我输入,ab然后 vim 将运行 command <command> ab。如果我输入,,xyz那么 vim 将运行 command <command> xyz

怎么做?

vim

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

标签 统计

dart ×2

expression ×1

function ×1

haskell ×1

if-statement ×1

rust ×1

sorting ×1

syntax ×1

vim ×1