当前位置: 首页 > 面试题库 >

Go是否具有lambda表达式或类似内容?

凌展
2023-03-14
问题内容

Go是否支持lambda表达式或类似内容?

我想从使用lambda表达式(Ruby)的另一种语言移植库。


问题答案:

这是一个示例,请仔细复制并粘贴:

package main

import fmt "fmt"

type Stringy func() string

func foo() string{
  return "Stringy function"
}

func takesAFunction(foo Stringy){
  fmt.Printf("takesAFunction: %v\n", foo())
}

func returnsAFunction()Stringy{
  return func()string{
    fmt.Printf("Inner stringy function\n");
    return "bar" // have to return a string to be stringy
  }
}

func main(){
  takesAFunction(foo);
  var f Stringy = returnsAFunction();
  f();
  var baz Stringy = func()string{
    return "anonymous stringy\n"
  };
  fmt.Printf(baz());
}


 类似资料:
  • 问题内容: 我在线路42和43的误差:, 未处理的异常类型InterruptedException的 。如果我尝试快速修复,它将使用catch Exception 创建try catch ,它将具有相同的错误,并且将尝试以相同的方式修复它,并继续用try catch包围它。 问题答案: 您已创建一个函数接口,该函数接口的方法声明为引发,这是一个已检查的异常。但是,你叫一个lambda表达式作为参数

  • 问题内容: 我想使用方法按长度对数组中的字符串元素进行排序。我在这里被告知,可以使用lambda表达式来代替创建实现Comparator的新类。这样做完全一样,但是没有用。 问题答案: 最干净的方法是: 或者,使用静态导入: 但是,这也可以工作,但更详细: 或更短: 最后是您的最后一个: 有错位的-它应该是:

  • 我最近接触了Java8,我正在尝试学习Lambda表达式。我想做一些图形计算,我的代码到目前为止: 所有这些代码都是用于图形的,除了和使用的操作之外,所有内容都是基本的数学(加、减、乘、模),并且可以单独针对每个像素执行。 现在的问题是:有可能在GPU上运行这个吗?或者这甚至是自动基于GPU的?(我记得在什么地方读到过这个,但我不确定)

  • 问题内容: 如果不 遍历整个数组,如何使用Go 检查数组中是否存在?语言有结构吗? 像Python: 问题答案: Go中没有内置的运算符。您需要遍历数组。您可以编写自己的函数来执行此操作,如下所示: 如果您希望能够在不迭代整个列表的情况下检查成员资格,则需要使用映射而不是数组或切片,如下所示:

  • 问题内容: 阅读有关Java 8从lambdas产生什么样的字节码的信息,我想到了Java 5发布的时间。那时有Retroweaver和其他工具,可将用JDK 5编译的字节码转换为可在JRE 1.4上运行。 是否有人为Java 8 lambda创建了这种反向移植工具? 这将使Java开发人员从今天开始已经在生产质量的Java 7 JRE上使用lambda,而不必等待6-12个月的Java 8 GA

  • (译注:目前支持lambda的gcc编译器版本为4.5,其它详细的编译器对于C++11新特性的支持请参考http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport) Lambda表达式是一种描述函数对象的机制,它的主要应用是描述某些具有简单行为的函数(译注:Lambda表达式也可以称为匿名函数,具有复杂行为的函数可以采用命名函数对象,当然,何谓复杂