小编Ama*_*asu的帖子

C编译器(clang)如何执行const?

使用Clang,以下内容:

#include <stdio.h>

int main(void)
{   double const x = 1.234;
    double *p = (double *) &x;
    /* Same with double *p = &x; but with a mere warning from clang
       Clang++ does raise an error in this case.
    */
    *p = 5.678;

    printf("*p = %f\n", *p);
    printf(" x = %f\n", x);

    if (&x == p) {
        printf("&x = %p\n", &x);
        printf(" p = %p\n", p);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

给出输出:

* p = 5.678000
x = 1.234000
&x = …

c const

4
推荐指数
2
解决办法
101
查看次数

Scala“for-yield”给出元组的选项,但需要选项的元组

object main {
  def main(args: Array[String]) = {
    val x: Option[Int] = Some(2)
    val y: Option[Int] = Some(3)
    val z: Option[Int] = Some(5)

    val result1 = for {
      x <- x
      y <- y
      z <- z
    } yield {
      (x + y, x + z, y + z)
    }

    println(result1)

  }
}
Run Code Online (Sandbox Code Playgroud)

这给出了Some((5,7,8)). 如果相反,例如val y: Option[Int] = Nonethen也result1将是 a None

然而,即使我们没有y,我们仍然可以计算x + z。所以我希望得到这样的结果:

(None,Some(7),None)
Run Code Online (Sandbox Code Playgroud)

这可以通过以下方式实现,无需太多代码

import scala.util.Try
(Try(x.get …
Run Code Online (Sandbox Code Playgroud)

scala option-type

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

Scala:从 f(x1, ... xn) 创建 x1 =&gt; f(x2, ..., xn)

如果我们将其限制为三个参数的情况,我想从中得到

val f = (x: Int, y: Int, z: Int) => x + y + z
Run Code Online (Sandbox Code Playgroud)

对此:

val g = (x: Int) => { (y: Int, z: Int) => f(x, y, z) }
Run Code Online (Sandbox Code Playgroud)

我什至不知道该操作是如何调用的,大概是“柯里化第一个参数”?

Scala 是否有用于此操作的实用函数,或者像上面那样写出来是实现它的唯一方法吗?

functional-programming scala

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

标签 统计

scala ×2

c ×1

const ×1

functional-programming ×1

option-type ×1