小编Suy*_*yog的帖子

在GO中嵌套函数调用

让我们说我们想要实现以下计算:

outval / err = f3(f3(f1(inval))

其中每一个的f1,f2,f3可与当时的错误失败,我们停止计算,并设置err为Error被失败的函数返回.(当然,嵌套可以任意长)

在像C++/JAVA/C#这样的语言中,可以通过使用f1,f2f3抛出异常并将计算封装在try-catch块中来轻松完成,而在像Haskell这样的语言中,我们可以使用monads代替.

现在我正在尝试在GO中实现它,我能想到的唯一方法是显而易见的 - 否则是一个相当冗长的梯形图.如果我们无法嵌套调用,我没有问题,但在我看来,在代码中的每一行看起来很丑并且它打破了流程后添加错误检查.我想知道是否有更好的方法.

编辑:根据peterSO的评论进行编辑
下面是具体的示例和简单的实现

package main

import "fmt"

func f1(in int) (out int, err error) {
    return in + 1, err
}

func f2(in int) (out int, err error) {
    return in + 2, err
}

func f3(in int) (out int, err error) {
    return in + 3, err
}

func calc(in int) (out int, err error) …
Run Code Online (Sandbox Code Playgroud)

go

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

使用 Roslyn 创建整数文字表达式

如何使用 Roslyn 语法工厂为整数文字(例如 2)创建表达式?

当我在调试器下查看它时,它看起来有 type NumericLiteralExpression,但我找不到如何创建它?

最近,我发现是SyntaxFactory.LiteralExpression(SyntaxKind.NumericLiteralExpression, SyntaxFactory.Token(..)),但我不知道如何创建表示值 2 的标记。

abstract-syntax-tree roslyn

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

用于动态html的GO模板

任何人都可以告诉我如何使用GO模板在https://developers.google.com/appengine/docs/java/gettingstarted/usingjsps上编写像guestbook.jsp这样的简单页面?

在我看来,很容易编写一个有效的,但我想知道它是否可以像JSP页面一样简洁地完成.

有两个问题,我不知道如何解决

  1. JSP页面使用两个对象user和request,而模板创建只需一个.
  2. 如果我们使用单独的模板生成注销链接和留言簿,那么我们如何将它们嵌套在主页面中呢?

google-app-engine templates go

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